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