analysis: Move plugins to their own sub-directory
[deliverable/tracecompass.git] / org.eclipse.tracecompass.tmf.core.tests / src / org / eclipse / tracecompass / tmf / core / tests / analysis / AnalysisRequirementHelperTest.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 *******************************************************************************/
12
13 package org.eclipse.tracecompass.tmf.core.tests.analysis;
14
15 import static org.junit.Assert.assertEquals;
16 import static org.junit.Assert.assertFalse;
17 import static org.junit.Assert.assertTrue;
18
19 import java.util.Collection;
20 import java.util.HashSet;
21 import java.util.Set;
22
23 import org.eclipse.tracecompass.tmf.core.analysis.IAnalysisRequirementProvider;
24 import org.eclipse.tracecompass.tmf.core.analysis.TmfAnalysisRequirementHelper;
25 import org.eclipse.tracecompass.tmf.core.analysis.TmfAnalysisRequirement.ValuePriorityLevel;
26 import org.eclipse.tracecompass.tmf.tests.stubs.analysis.AnalysisModuleTestHelper;
27 import org.eclipse.tracecompass.tmf.tests.stubs.analysis.AnalysisRequirementFactory;
28 import org.eclipse.tracecompass.tmf.tests.stubs.analysis.AnalysisModuleTestHelper.moduleStubEnum;
29 import org.junit.Before;
30 import org.junit.Test;
31
32 import com.google.common.collect.Multimap;
33
34 /**
35 * Test suite for the {@link TmfAnalysisRequirementHelper} class
36 */
37 public class AnalysisRequirementHelperTest {
38
39 private AnalysisModuleTestHelper fTestModuleHelper;
40 private AnalysisModuleTestHelper fTestModuleHelper2;
41
42 /**
43 * Set up analysis modules
44 */
45 @Before
46 public void setUpTest() {
47 fTestModuleHelper = new AnalysisModuleTestHelper(moduleStubEnum.TEST);
48 fTestModuleHelper2 = new AnalysisModuleTestHelper(moduleStubEnum.TEST2);
49 }
50
51 /**
52 * Test suite for the
53 * {@link TmfAnalysisRequirementHelper#getRequirementValues(IAnalysisRequirementProvider, String)}
54 * method
55 */
56 @Test
57 public void testGetRequirementValues() {
58 /* Test with a supported type */
59 String type = AnalysisRequirementFactory.REQUIREMENT_TYPE_1;
60 Set<String> values = TmfAnalysisRequirementHelper.getRequirementValues(fTestModuleHelper, type);
61 assertEquals(AnalysisRequirementFactory.REQUIREMENT_VALUES_1.size(), values.size());
62
63 /* Test with a type not supported */
64 type = AnalysisRequirementFactory.REQUIREMENT_TYPE_2;
65 values = TmfAnalysisRequirementHelper.getRequirementValues(fTestModuleHelper, type);
66 assertTrue(values.isEmpty());
67 }
68
69 /**
70 * Test suite for the
71 * {@link TmfAnalysisRequirementHelper#getRequirementValues(IAnalysisRequirementProvider, String, ValuePriorityLevel)}
72 * method
73 */
74 @Test
75 public void testGetRequirementValuesWithLevel() {
76 /* Test with a supported type */
77 String type = AnalysisRequirementFactory.REQUIREMENT_TYPE_2;
78 Set<String> values = TmfAnalysisRequirementHelper.getRequirementValues(fTestModuleHelper2, type, ValuePriorityLevel.MANDATORY);
79 assertEquals(3, values.size());
80
81 /* Test with another value level */
82 values = TmfAnalysisRequirementHelper.getRequirementValues(fTestModuleHelper2, type, ValuePriorityLevel.OPTIONAL);
83 assertEquals(2, values.size());
84
85 /* Test with a type not supported */
86 type = AnalysisRequirementFactory.REQUIREMENT_TYPE_1;
87 values = TmfAnalysisRequirementHelper.getRequirementValues(fTestModuleHelper2, type, ValuePriorityLevel.MANDATORY);
88 assertTrue(values.isEmpty());
89 }
90
91 /**
92 * Test suite for the
93 * {@link TmfAnalysisRequirementHelper#getRequirementValuesMap(Iterable)}
94 * method
95 */
96 @Test
97 public void testGetRequirementValuesMap() {
98 Set<IAnalysisRequirementProvider> providers = new HashSet<>();
99 providers.add(fTestModuleHelper2);
100 providers.add(fTestModuleHelper);
101
102 Multimap<String, String> valuesByType = TmfAnalysisRequirementHelper.getRequirementValuesMap(providers);
103 assertFalse(valuesByType.isEmpty());
104
105 /* There should be 3 types */
106 assertEquals(3, valuesByType.keySet().size());
107
108 Collection<String> values = valuesByType.get(AnalysisRequirementFactory.REQUIREMENT_TYPE_1);
109 assertEquals(4, values.size());
110 assertTrue(values.contains(AnalysisRequirementFactory.REQUIREMENT_VALUE_1));
111 assertTrue(values.contains(AnalysisRequirementFactory.REQUIREMENT_VALUE_2));
112 assertTrue(values.contains(AnalysisRequirementFactory.REQUIREMENT_VALUE_3));
113 assertTrue(values.contains(AnalysisRequirementFactory.REQUIREMENT_VALUE_5));
114
115 values = valuesByType.get(AnalysisRequirementFactory.REQUIREMENT_TYPE_2);
116 assertEquals(5, values.size());
117 assertTrue(values.contains(AnalysisRequirementFactory.REQUIREMENT_VALUE_1));
118 assertTrue(values.contains(AnalysisRequirementFactory.REQUIREMENT_VALUE_2));
119 assertTrue(values.contains(AnalysisRequirementFactory.REQUIREMENT_VALUE_3));
120 assertTrue(values.contains(AnalysisRequirementFactory.REQUIREMENT_VALUE_4));
121 assertTrue(values.contains(AnalysisRequirementFactory.REQUIREMENT_VALUE_5));
122
123 values = valuesByType.get(AnalysisRequirementFactory.REQUIREMENT_TYPE_3);
124 assertEquals(3, values.size());
125 assertTrue(values.contains(AnalysisRequirementFactory.REQUIREMENT_VALUE_3));
126 assertTrue(values.contains(AnalysisRequirementFactory.REQUIREMENT_VALUE_4));
127 assertTrue(values.contains(AnalysisRequirementFactory.REQUIREMENT_VALUE_5));
128 }
129
130 /**
131 * Test suite for the
132 * {@link TmfAnalysisRequirementHelper#getRequirementValuesMap(Iterable, ValuePriorityLevel)}
133 * method
134 */
135 @Test
136 public void testGetRequirementValuesMapWithLevel() {
137 Set<IAnalysisRequirementProvider> providers = new HashSet<>();
138 providers.add(fTestModuleHelper2);
139 providers.add(fTestModuleHelper);
140
141 /* There should be 3 optional requirements types */
142 Multimap<String, String> valuesByType = TmfAnalysisRequirementHelper.getRequirementValuesMap(providers, ValuePriorityLevel.OPTIONAL);
143 assertTrue(!valuesByType.isEmpty());
144 assertEquals(1, valuesByType.keySet().size());
145
146 Collection<String> values = valuesByType.get(AnalysisRequirementFactory.REQUIREMENT_TYPE_1);
147 assertTrue(values.isEmpty());
148
149 values = valuesByType.get(AnalysisRequirementFactory.REQUIREMENT_TYPE_2);
150 assertEquals(2, values.size());
151 assertTrue(values.contains(AnalysisRequirementFactory.REQUIREMENT_VALUE_2));
152 assertTrue(values.contains(AnalysisRequirementFactory.REQUIREMENT_VALUE_4));
153
154 values = valuesByType.get(AnalysisRequirementFactory.REQUIREMENT_TYPE_3);
155 assertTrue(values.isEmpty());
156
157 /* And 3 types with mandatory requirements */
158 valuesByType = TmfAnalysisRequirementHelper.getRequirementValuesMap(providers, ValuePriorityLevel.MANDATORY);
159 assertTrue(!valuesByType.isEmpty());
160 assertEquals(3, valuesByType.keySet().size());
161
162 values = valuesByType.get(AnalysisRequirementFactory.REQUIREMENT_TYPE_1);
163 assertEquals(4, values.size());
164 assertTrue(values.contains(AnalysisRequirementFactory.REQUIREMENT_VALUE_1));
165 assertTrue(values.contains(AnalysisRequirementFactory.REQUIREMENT_VALUE_2));
166 assertTrue(values.contains(AnalysisRequirementFactory.REQUIREMENT_VALUE_3));
167 assertTrue(values.contains(AnalysisRequirementFactory.REQUIREMENT_VALUE_5));
168
169 values = valuesByType.get(AnalysisRequirementFactory.REQUIREMENT_TYPE_2);
170 assertEquals(3, values.size());
171 assertTrue(values.contains(AnalysisRequirementFactory.REQUIREMENT_VALUE_1));
172 assertTrue(values.contains(AnalysisRequirementFactory.REQUIREMENT_VALUE_3));
173 assertTrue(values.contains(AnalysisRequirementFactory.REQUIREMENT_VALUE_5));
174
175 values = valuesByType.get(AnalysisRequirementFactory.REQUIREMENT_TYPE_3);
176 assertEquals(3, values.size());
177 assertTrue(values.contains(AnalysisRequirementFactory.REQUIREMENT_VALUE_3));
178 assertTrue(values.contains(AnalysisRequirementFactory.REQUIREMENT_VALUE_4));
179 assertTrue(values.contains(AnalysisRequirementFactory.REQUIREMENT_VALUE_5));
180 }
181
182 }
This page took 0.03522 seconds and 5 git commands to generate.