cba7c9defae79e3f8fb8a5b2b79a271d3bd2cfe1
[deliverable/tracecompass.git] / tmf / org.eclipse.tracecompass.tmf.core.tests / src / org / eclipse / tracecompass / tmf / core / tests / analysis / requirements / AnalysisRequirementTest.java
1 /*******************************************************************************
2 * Copyright (c) 2014 École Polytechnique de Montréal
3 *
4 * All rights reserved. This program and the accompanying materials are
5 * made available under the terms of the Eclipse Public License v1.0 which
6 * accompanies this distribution, and is available at
7 * http://www.eclipse.org/legal/epl-v10.html
8 *
9 * Contributors:
10 * Guilliano Molaire - Initial API and implementation
11 * Mathieu Rail - Initial API and implementation
12 *******************************************************************************/
13
14 package org.eclipse.tracecompass.tmf.core.tests.analysis.requirements;
15
16 import static org.junit.Assert.assertEquals;
17 import static org.junit.Assert.assertTrue;
18
19 import java.util.Collections;
20 import java.util.Set;
21
22 import org.eclipse.jdt.annotation.NonNull;
23 import org.eclipse.tracecompass.tmf.core.analysis.requirements.TmfAnalysisRequirement;
24 import org.eclipse.tracecompass.tmf.core.analysis.requirements.TmfAnalysisRequirement.PriorityLevel;
25 import org.junit.Test;
26
27 import com.google.common.collect.ImmutableSet;
28
29 /**
30 * Test suite for the {@link TmfAnalysisRequirement} class.
31 *
32 * @author Guilliano Molaire
33 * @author Mathieu Rail
34 */
35 public class AnalysisRequirementTest {
36
37 /* Requirement value name strings */
38 private static final @NonNull String VALUE_A = "Test Value A";
39 private static final @NonNull String VALUE_B = "Test Value B";
40
41 /* Requirement information strings */
42 private static final @NonNull String INFO_A = "This is an information.";
43 private static final @NonNull String INFO_B = "This is another information.";
44
45 /**
46 * Test the {@link TmfAnalysisRequirement#addInformation} and the
47 * {@link TmfAnalysisRequirement#getInformation} methods.
48 */
49 @Test
50 public void testAddAndGetInformation() {
51 TmfAnalysisRequirement requirement = new TmfAnalysisRequirement(Collections.EMPTY_SET, PriorityLevel.OPTIONAL);
52
53 requirement.addInformation(INFO_A);
54 requirement.addInformation(INFO_B);
55 requirement.addInformation(INFO_B);
56
57 Set<String> information = requirement.getInformation();
58
59 assertEquals(2, information.size());
60
61 assertTrue(information.contains(INFO_A));
62 assertTrue(information.contains(INFO_B));
63 }
64
65 /**
66 * Test the {@link TmfAnalysisRequirement#getValueLevel} method.
67 */
68 @Test
69 public void testGetValueLevel() {
70 /* Optional requirement */
71 TmfAnalysisRequirement requirement = new TmfAnalysisRequirement(Collections.EMPTY_SET, PriorityLevel.OPTIONAL);
72 assertEquals(PriorityLevel.OPTIONAL, requirement.getPriorityLevel());
73
74 /* All or nothing */
75 requirement = new TmfAnalysisRequirement(Collections.EMPTY_SET, PriorityLevel.ALL_OR_NOTHING);
76 assertEquals(PriorityLevel.ALL_OR_NOTHING, requirement.getPriorityLevel());
77
78 /* At least one */
79 requirement = new TmfAnalysisRequirement(Collections.EMPTY_SET, PriorityLevel.AT_LEAST_ONE);
80 assertEquals(PriorityLevel.AT_LEAST_ONE, requirement.getPriorityLevel());
81
82 /* Mandatory */
83 requirement = new TmfAnalysisRequirement(Collections.EMPTY_SET, PriorityLevel.MANDATORY);
84 assertEquals(PriorityLevel.MANDATORY, requirement.getPriorityLevel());
85 }
86
87 /**
88 * Test the {@link TmfAnalysisRequirement#getValues()} method
89 */
90 @Test
91 public void testGetValues() {
92 ImmutableSet<@NonNull String> values = ImmutableSet.of(VALUE_A, VALUE_B);
93 TmfAnalysisRequirement requirement = new TmfAnalysisRequirement(values, PriorityLevel.OPTIONAL);
94 assertEquals(values, requirement.getValues());
95 }
96
97 }
This page took 0.033312 seconds and 5 git commands to generate.