1 /*******************************************************************************
2 * Copyright (c) 2014 École Polytechnique de Montréal
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
10 * Guilliano Molaire - Initial API and implementation
11 * Mathieu Rail - Initial API and implementation
12 *******************************************************************************/
14 package org
.eclipse
.tracecompass
.tmf
.core
.tests
.analysis
.requirements
;
16 import static org
.junit
.Assert
.assertEquals
;
17 import static org
.junit
.Assert
.assertTrue
;
19 import java
.util
.Collections
;
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
;
27 import com
.google
.common
.collect
.ImmutableSet
;
30 * Test suite for the {@link TmfAnalysisRequirement} class.
32 * @author Guilliano Molaire
33 * @author Mathieu Rail
35 public class AnalysisRequirementTest
{
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";
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.";
46 * Test the {@link TmfAnalysisRequirement#addInformation} and the
47 * {@link TmfAnalysisRequirement#getInformation} methods.
50 public void testAddAndGetInformation() {
51 TmfAnalysisRequirement requirement
= new TmfAnalysisRequirement(Collections
.EMPTY_SET
, PriorityLevel
.OPTIONAL
);
53 requirement
.addInformation(INFO_A
);
54 requirement
.addInformation(INFO_B
);
55 requirement
.addInformation(INFO_B
);
57 Set
<String
> information
= requirement
.getInformation();
59 assertEquals(2, information
.size());
61 assertTrue(information
.contains(INFO_A
));
62 assertTrue(information
.contains(INFO_B
));
66 * Test the {@link TmfAnalysisRequirement#getValueLevel} method.
69 public void testGetValueLevel() {
70 /* Optional requirement */
71 TmfAnalysisRequirement requirement
= new TmfAnalysisRequirement(Collections
.EMPTY_SET
, PriorityLevel
.OPTIONAL
);
72 assertEquals(PriorityLevel
.OPTIONAL
, requirement
.getPriorityLevel());
75 requirement
= new TmfAnalysisRequirement(Collections
.EMPTY_SET
, PriorityLevel
.ALL_OR_NOTHING
);
76 assertEquals(PriorityLevel
.ALL_OR_NOTHING
, requirement
.getPriorityLevel());
79 requirement
= new TmfAnalysisRequirement(Collections
.EMPTY_SET
, PriorityLevel
.AT_LEAST_ONE
);
80 assertEquals(PriorityLevel
.AT_LEAST_ONE
, requirement
.getPriorityLevel());
83 requirement
= new TmfAnalysisRequirement(Collections
.EMPTY_SET
, PriorityLevel
.MANDATORY
);
84 assertEquals(PriorityLevel
.MANDATORY
, requirement
.getPriorityLevel());
88 * Test the {@link TmfAnalysisRequirement#getValues()} method
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());