Commit | Line | Data |
---|---|---|
79e08fd0 BH |
1 | /******************************************************************************* |
2 | * Copyright (c) 2011 Ericsson | |
64636df8 | 3 | * |
79e08fd0 BH |
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 | |
64636df8 | 8 | * |
79e08fd0 | 9 | * Contributors: |
09667aa4 | 10 | * Mathieu Denis <mathieu.denis@polymtl.ca> - Initial design and implementation |
79e08fd0 BH |
11 | * Bernd Hufmann - Fixed warnings |
12 | *******************************************************************************/ | |
13 | ||
14 | package org.eclipse.linuxtools.tmf.ui.tests.statistics; | |
15 | ||
16 | import java.util.Collection; | |
17 | import java.util.Iterator; | |
18 | import java.util.Vector; | |
19 | ||
20 | import junit.framework.TestCase; | |
21 | ||
4c564a2d | 22 | import org.eclipse.linuxtools.tmf.core.event.ITmfEventField; |
6c13869b | 23 | import org.eclipse.linuxtools.tmf.core.event.TmfEvent; |
4c564a2d | 24 | import org.eclipse.linuxtools.tmf.core.event.TmfEventField; |
6c13869b FC |
25 | import org.eclipse.linuxtools.tmf.core.event.TmfEventType; |
26 | import org.eclipse.linuxtools.tmf.core.event.TmfTimestamp; | |
cfd22ad0 | 27 | import org.eclipse.linuxtools.tmf.ui.viewers.statistics.model.Messages; |
36033ff0 | 28 | import org.eclipse.linuxtools.tmf.ui.viewers.statistics.model.TmfStatisticsTree; |
cfd22ad0 | 29 | import org.eclipse.linuxtools.tmf.ui.viewers.statistics.model.TmfStatisticsTreeNode; |
79e08fd0 | 30 | |
64636df8 BH |
31 | /** |
32 | * TmfStatisticsTreeNode Test Cases. | |
33 | */ | |
79e08fd0 BH |
34 | @SuppressWarnings("nls") |
35 | public class TmfStatisticsTreeNodeTest extends TestCase { | |
36 | ||
37 | // ------------------------------------------------------------------------ | |
38 | // Fields | |
39 | // ------------------------------------------------------------------------ | |
40 | private String fTestName = null; | |
64636df8 BH |
41 | |
42 | ||
cbbcc354 | 43 | private final String fContext = "UnitTest"; |
44 | private final String fTypeId1 = "Some type1"; | |
45 | private final String fTypeId2 = "Some type2"; | |
64636df8 | 46 | |
79e08fd0 BH |
47 | private final String fLabel0 = "label1"; |
48 | private final String fLabel1 = "label2"; | |
49 | private final String fLabel2 = "label3"; | |
50 | private final String[] fLabels = new String[] { fLabel0, fLabel1, fLabel2 }; | |
51 | ||
4641c2f7 FC |
52 | private final TmfTimestamp fTimestamp1 = new TmfTimestamp(12345, (byte) 2, 5); |
53 | private final TmfTimestamp fTimestamp2 = new TmfTimestamp(12350, (byte) 2, 5); | |
54 | private final TmfTimestamp fTimestamp3 = new TmfTimestamp(12355, (byte) 2, 5); | |
64636df8 | 55 | |
4641c2f7 | 56 | private final String fSource = "Source"; |
64636df8 | 57 | |
4c564a2d | 58 | private final TmfEventType fType1 = new TmfEventType(fContext, fTypeId1, TmfEventField.makeRoot(fLabels)); |
255224d9 | 59 | private final TmfEventType fType2 = new TmfEventType(fContext, fTypeId2, TmfEventField.makeRoot(fLabels)); |
64636df8 | 60 | |
4641c2f7 | 61 | private final String fReference = "Some reference"; |
79e08fd0 BH |
62 | |
63 | private final TmfEvent fEvent1; | |
64 | private final TmfEvent fEvent2; | |
65 | private final TmfEvent fEvent3; | |
66 | ||
4c564a2d FC |
67 | private final TmfEventField fContent1; |
68 | private final TmfEventField fContent2; | |
69 | private final TmfEventField fContent3; | |
64636df8 | 70 | |
36033ff0 | 71 | private final TmfStatisticsTree fStatsData; |
64636df8 | 72 | |
79e08fd0 BH |
73 | // ------------------------------------------------------------------------ |
74 | // Housekeeping | |
75 | // ------------------------------------------------------------------------ | |
64636df8 | 76 | |
79e08fd0 | 77 | /** |
09667aa4 MD |
78 | * @param name |
79 | * Test name | |
79e08fd0 BH |
80 | */ |
81 | public TmfStatisticsTreeNodeTest(final String name) { | |
82 | super(name); | |
64636df8 | 83 | |
79e08fd0 | 84 | fTestName = name; |
64636df8 | 85 | |
a4115405 | 86 | fContent1 = new TmfEventField(ITmfEventField.ROOT_FIELD_ID, "Some content"); |
7b477cc3 | 87 | fEvent1 = new TmfEvent(null, fTimestamp1, fSource, fType1, fContent1, fReference); |
79e08fd0 | 88 | |
a4115405 | 89 | fContent2 = new TmfEventField(ITmfEventField.ROOT_FIELD_ID, "Some other content"); |
255224d9 | 90 | fEvent2 = new TmfEvent(null, fTimestamp2, fSource, fType1, fContent2, fReference); |
64636df8 | 91 | |
a4115405 | 92 | fContent3 = new TmfEventField(ITmfEventField.ROOT_FIELD_ID, "Some other different content"); |
255224d9 | 93 | fEvent3 = new TmfEvent(null, fTimestamp3, fSource, fType2, fContent3, fReference); |
7b477cc3 | 94 | |
36033ff0 | 95 | fStatsData = new TmfStatisticsTree(); |
89c06060 AM |
96 | |
97 | fStatsData.setTotal(fTestName, true, 9); | |
98 | fStatsData.setTypeCount(fTestName, fEvent1.getType().getName(), true, 2); | |
99 | fStatsData.setTypeCount(fTestName, fEvent2.getType().getName(), true, 3); | |
100 | fStatsData.setTypeCount(fTestName, fEvent3.getType().getName(), true, 4); | |
255224d9 MD |
101 | |
102 | // Registers some events in time range | |
89c06060 AM |
103 | fStatsData.setTotal(fTestName, false, 9); |
104 | fStatsData.setTypeCount(fTestName, fEvent1.getType().getName(), false, 2); | |
105 | fStatsData.setTypeCount(fTestName, fEvent2.getType().getName(), false, 3); | |
106 | fStatsData.setTypeCount(fTestName, fEvent3.getType().getName(), false, 4); | |
79e08fd0 | 107 | } |
64636df8 | 108 | |
79e08fd0 BH |
109 | // ------------------------------------------------------------------------ |
110 | // ContainsChild | |
111 | // ------------------------------------------------------------------------ | |
112 | ||
64636df8 BH |
113 | /** |
114 | * Test checking for child. | |
115 | */ | |
79e08fd0 | 116 | public void testContainsChild() { |
36033ff0 | 117 | TmfStatisticsTreeNode rootNode = fStatsData.get(TmfStatisticsTree.ROOT); |
5673a177 | 118 | TmfStatisticsTreeNode traceNode = fStatsData.get(fTestName); |
79e08fd0 BH |
119 | // Creates a category from the key already created |
120 | TmfStatisticsTreeNode catNode = traceNode.getChildren().iterator().next(); | |
64636df8 | 121 | |
09667aa4 | 122 | assertTrue("containsChild", rootNode.containsChild(fTestName)); |
79e08fd0 BH |
123 | assertFalse("containsChild", rootNode.containsChild(catNode.getKey())); |
124 | assertFalse("containsChild", rootNode.containsChild(null)); | |
64636df8 | 125 | |
09667aa4 | 126 | assertTrue("containsChild", traceNode.containsChild(catNode.getKey())); |
59b50985 | 127 | assertFalse("containsChild", traceNode.containsChild(fType1.getName())); |
79e08fd0 | 128 | assertFalse("containsChild", traceNode.containsChild(null)); |
64636df8 | 129 | |
59b50985 MD |
130 | assertTrue("containsChild", catNode.containsChild(fType1.getName())); |
131 | assertTrue("containsChild", catNode.containsChild(fType2.getName())); | |
79e08fd0 BH |
132 | assertFalse("containsChild", catNode.containsChild(null)); |
133 | } | |
64636df8 | 134 | |
79e08fd0 BH |
135 | // ------------------------------------------------------------------------ |
136 | // GetChildren | |
137 | // ------------------------------------------------------------------------ | |
138 | ||
64636df8 BH |
139 | /** |
140 | * Test getting of children. | |
141 | */ | |
79e08fd0 BH |
142 | public void testGetChildren() { |
143 | // Getting children of the ROOT | |
36033ff0 | 144 | Collection<TmfStatisticsTreeNode> childrenTreeNode = fStatsData.get(TmfStatisticsTree.ROOT[0]).getChildren(); |
79e08fd0 BH |
145 | assertEquals("getChildren", 1, childrenTreeNode.size()); |
146 | TmfStatisticsTreeNode treeNode = childrenTreeNode.iterator().next(); | |
147 | assertEquals("getChildren", fTestName, treeNode.getKey()); | |
64636df8 | 148 | |
79e08fd0 | 149 | // Getting children of the trace |
5673a177 | 150 | childrenTreeNode = fStatsData.get(fTestName).getChildren(); |
79e08fd0 BH |
151 | assertEquals("getChildren", 1, childrenTreeNode.size()); |
152 | treeNode = childrenTreeNode.iterator().next(); | |
153 | assertEquals("getChildren", Messages.TmfStatisticsData_EventTypes, treeNode.getKey()); | |
64636df8 BH |
154 | |
155 | Vector<String> keyExpected = new Vector<String>(); | |
59b50985 MD |
156 | keyExpected.add(fType1.getName()); |
157 | keyExpected.add(fType2.getName()); | |
79e08fd0 BH |
158 | // Getting children of a category |
159 | childrenTreeNode = treeNode.getChildren(); | |
160 | assertEquals("getChildren", 2, childrenTreeNode.size()); | |
64636df8 | 161 | |
79e08fd0 BH |
162 | Iterator<TmfStatisticsTreeNode> iterChild = childrenTreeNode.iterator(); |
163 | TmfStatisticsTreeNode temp; | |
164 | while (iterChild.hasNext()) { | |
165 | temp = iterChild.next(); | |
166 | if (keyExpected.contains(temp.getKey())) { | |
167 | keyExpected.removeElement(temp.getKey()); | |
09667aa4 | 168 | } else { |
79e08fd0 BH |
169 | fail(); |
170 | } | |
171 | } | |
64636df8 | 172 | |
79e08fd0 BH |
173 | // Get children of a specific event type |
174 | childrenTreeNode = fStatsData.get(childrenTreeNode.iterator().next().getPath()).getChildren(); | |
175 | assertEquals("getChildren", 0, childrenTreeNode.size()); | |
176 | } | |
64636df8 | 177 | |
79e08fd0 BH |
178 | // ------------------------------------------------------------------------ |
179 | // GetAllChildren | |
180 | // ------------------------------------------------------------------------ | |
181 | ||
64636df8 BH |
182 | /** |
183 | * Test getting of all children. | |
184 | */ | |
79e08fd0 BH |
185 | public void testGetAllChildren() { |
186 | // Getting children of the ROOT | |
36033ff0 | 187 | Collection<TmfStatisticsTreeNode> childrenTreeNode = fStatsData.get(TmfStatisticsTree.ROOT).getAllChildren(); |
79e08fd0 BH |
188 | assertEquals("getChildren", 1, childrenTreeNode.size()); |
189 | TmfStatisticsTreeNode treeNode = childrenTreeNode.iterator().next(); | |
190 | assertEquals("getChildren", fTestName, treeNode.getKey()); | |
64636df8 | 191 | |
79e08fd0 | 192 | // Getting children of the trace |
5673a177 | 193 | childrenTreeNode = fStatsData.get(fTestName).getAllChildren(); |
79e08fd0 BH |
194 | assertEquals("getChildren", 1, childrenTreeNode.size()); |
195 | treeNode = childrenTreeNode.iterator().next(); | |
196 | assertEquals("getChildren", Messages.TmfStatisticsData_EventTypes, treeNode.getKey()); | |
64636df8 BH |
197 | |
198 | Vector<String> keyExpected = new Vector<String>(); | |
59b50985 MD |
199 | keyExpected.add(fType1.getName()); |
200 | keyExpected.add(fType2.getName()); | |
09667aa4 MD |
201 | /* |
202 | * It should return the eventType even though the number of events | |
203 | * equals 0 | |
204 | */ | |
5673a177 | 205 | fStatsData.get(fTestName, Messages.TmfStatisticsData_EventTypes, fType1.getName()).reset(); |
79e08fd0 BH |
206 | // Getting children of a category |
207 | childrenTreeNode = treeNode.getAllChildren(); | |
208 | assertEquals("getChildren", 2, childrenTreeNode.size()); | |
64636df8 | 209 | |
79e08fd0 BH |
210 | Iterator<TmfStatisticsTreeNode> iterChild = childrenTreeNode.iterator(); |
211 | TmfStatisticsTreeNode temp; | |
212 | while (iterChild.hasNext()) { | |
213 | temp = iterChild.next(); | |
214 | if (keyExpected.contains(temp.getKey())) { | |
215 | keyExpected.removeElement(temp.getKey()); | |
09667aa4 | 216 | } else { |
79e08fd0 BH |
217 | fail(); |
218 | } | |
219 | } | |
64636df8 | 220 | |
79e08fd0 BH |
221 | // Get children of a specific event type |
222 | childrenTreeNode = fStatsData.get(childrenTreeNode.iterator().next().getPath()).getAllChildren(); | |
223 | assertEquals("getChildren", 0, childrenTreeNode.size()); | |
224 | } | |
64636df8 | 225 | |
79e08fd0 BH |
226 | // ------------------------------------------------------------------------ |
227 | // GetNbChildren | |
228 | // ------------------------------------------------------------------------ | |
09667aa4 | 229 | |
64636df8 BH |
230 | /** |
231 | * Test getting of number of children. | |
232 | */ | |
79e08fd0 | 233 | public void testGetNbChildren() { |
36033ff0 | 234 | TmfStatisticsTreeNode rootNode = fStatsData.get(TmfStatisticsTree.ROOT); |
5673a177 | 235 | TmfStatisticsTreeNode traceNode = fStatsData.get(fTestName); |
79e08fd0 | 236 | TmfStatisticsTreeNode catNode = traceNode.getChildren().iterator().next(); |
5673a177 | 237 | TmfStatisticsTreeNode elementNode = fStatsData.get(fTestName, Messages.TmfStatisticsData_EventTypes, fType1.getName()); |
64636df8 | 238 | |
09667aa4 MD |
239 | assertEquals("getNbChildren", 1, rootNode.getNbChildren()); |
240 | assertEquals("getNbChildren", 1, traceNode.getNbChildren()); | |
241 | assertEquals("getNbChildren", 2, catNode.getNbChildren()); | |
79e08fd0 BH |
242 | assertEquals("getNbChildren", 0, elementNode.getNbChildren()); |
243 | } | |
64636df8 | 244 | |
79e08fd0 BH |
245 | // ------------------------------------------------------------------------ |
246 | // HasChildren | |
247 | // ------------------------------------------------------------------------ | |
64636df8 BH |
248 | |
249 | /** | |
250 | * Test checking for children. | |
251 | */ | |
79e08fd0 | 252 | public void testHasChildren() { |
36033ff0 | 253 | TmfStatisticsTreeNode rootNode = fStatsData.get(TmfStatisticsTree.ROOT); |
5673a177 | 254 | TmfStatisticsTreeNode traceNode = fStatsData.get(fTestName); |
79e08fd0 | 255 | TmfStatisticsTreeNode catNode = traceNode.getChildren().iterator().next(); |
5673a177 | 256 | TmfStatisticsTreeNode elementNode = fStatsData.get(fTestName, Messages.TmfStatisticsData_EventTypes, fType1.getName()); |
64636df8 | 257 | |
09667aa4 MD |
258 | assertTrue("hasChildren", rootNode.hasChildren()); |
259 | assertTrue("hasChildren", traceNode.hasChildren()); | |
260 | assertTrue("hasChildren", catNode.hasChildren()); | |
79e08fd0 BH |
261 | assertFalse("hasChildren", elementNode.hasChildren()); |
262 | } | |
64636df8 | 263 | |
79e08fd0 BH |
264 | // ------------------------------------------------------------------------ |
265 | // GetParent | |
266 | // ------------------------------------------------------------------------ | |
64636df8 BH |
267 | |
268 | /** | |
255224d9 | 269 | * Test getting of parent. |
64636df8 | 270 | */ |
79e08fd0 | 271 | public void testGetParent() { |
36033ff0 | 272 | TmfStatisticsTreeNode rootNode = fStatsData.get(TmfStatisticsTree.ROOT); |
79e08fd0 BH |
273 | TmfStatisticsTreeNode parentNode = rootNode.getParent(); |
274 | assertNull("getParent", parentNode); | |
64636df8 | 275 | |
5673a177 | 276 | TmfStatisticsTreeNode newTraceNode = new TmfStatisticsTreeNode(fStatsData, "newly created trace node"); |
79e08fd0 BH |
277 | parentNode = newTraceNode.getParent(); |
278 | assertNotNull("getParent", parentNode); | |
36033ff0 | 279 | assertEquals("getParent", 0, parentNode.getKey().compareTo(fStatsData.get(TmfStatisticsTree.ROOT).getKey().toString())); |
64636df8 | 280 | |
5673a177 | 281 | TmfStatisticsTreeNode traceNode = fStatsData.get(fTestName); |
79e08fd0 BH |
282 | parentNode = traceNode.getParent(); |
283 | assertNotNull("getParent", parentNode); | |
36033ff0 | 284 | assertEquals("getParent", 0, parentNode.getPath().toString().compareTo(TmfStatisticsTree.ROOT.toString())); |
64636df8 | 285 | |
5673a177 | 286 | TmfStatisticsTreeNode newNode = new TmfStatisticsTreeNode(fStatsData, "TreeNode", Messages.TmfStatisticsData_EventTypes, "TreeNode that should not exist"); |
79e08fd0 BH |
287 | parentNode = newNode.getParent(); |
288 | assertNull("getParent", parentNode); | |
64636df8 | 289 | |
5673a177 | 290 | TmfStatisticsTreeNode elementNode = fStatsData.get(fTestName, Messages.TmfStatisticsData_EventTypes, fType1.getName()); |
79e08fd0 BH |
291 | parentNode = elementNode.getParent(); |
292 | assertNull("getParent", parentNode); | |
64636df8 | 293 | |
79e08fd0 BH |
294 | TmfStatisticsTreeNode catNode = traceNode.getChildren().iterator().next(); |
295 | parentNode = catNode.getParent(); | |
296 | assertNotNull("getParent", parentNode); | |
5673a177 | 297 | assertEquals("getParent", 0, parentNode.getPath().toString().compareTo(fStatsData.get(fTestName).getPath().toString())); |
64636df8 | 298 | |
79e08fd0 BH |
299 | parentNode = elementNode.getParent(); |
300 | assertNotNull("getParent", parentNode); | |
5673a177 | 301 | assertTrue(arraysEqual(parentNode.getPath(), fTestName, Messages.TmfStatisticsData_EventTypes)); |
79e08fd0 | 302 | } |
64636df8 | 303 | |
79e08fd0 BH |
304 | // ------------------------------------------------------------------------ |
305 | // GetKey | |
306 | // ------------------------------------------------------------------------ | |
09667aa4 | 307 | |
64636df8 BH |
308 | /** |
309 | * Test getting of key. | |
310 | */ | |
79e08fd0 | 311 | public void testGetKey() { |
36033ff0 | 312 | TmfStatisticsTreeNode rootNode = fStatsData.get(TmfStatisticsTree.ROOT); |
5673a177 | 313 | TmfStatisticsTreeNode traceNode = fStatsData.get(fTestName); |
79e08fd0 | 314 | TmfStatisticsTreeNode catNode = traceNode.getChildren().iterator().next(); |
5673a177 | 315 | TmfStatisticsTreeNode elementNode = fStatsData.get(fTestName, Messages.TmfStatisticsData_EventTypes, fType1.getName()); |
64636df8 | 316 | |
36033ff0 | 317 | assertEquals("getKey", 0, rootNode.getKey().compareTo(TmfStatisticsTree.ROOT[0])); |
09667aa4 MD |
318 | assertEquals("getKey", 0, traceNode.getKey().compareTo(fTestName)); |
319 | assertEquals("getKey", 0, catNode.getKey().compareTo(Messages.TmfStatisticsData_EventTypes)); | |
59b50985 | 320 | assertEquals("getKey", 0, elementNode.getKey().compareTo(fType1.getName())); |
79e08fd0 | 321 | } |
64636df8 | 322 | |
79e08fd0 BH |
323 | // ------------------------------------------------------------------------ |
324 | // GetPath | |
325 | // ------------------------------------------------------------------------ | |
64636df8 BH |
326 | |
327 | /** | |
328 | * Test getting of path to node. | |
329 | */ | |
79e08fd0 | 330 | public void testGetPath() { |
36033ff0 | 331 | TmfStatisticsTreeNode rootNode = fStatsData.get(TmfStatisticsTree.ROOT); |
5673a177 | 332 | TmfStatisticsTreeNode traceNode = fStatsData.get(fTestName); |
79e08fd0 | 333 | TmfStatisticsTreeNode catNode = traceNode.getChildren().iterator().next(); |
5673a177 AM |
334 | TmfStatisticsTreeNode elementNode = fStatsData.get(fTestName, Messages.TmfStatisticsData_EventTypes, fType1.getName()); |
335 | ||
36033ff0 | 336 | assertTrue("getPath", arraysEqual(rootNode.getPath(), TmfStatisticsTree.ROOT)); |
5673a177 AM |
337 | assertTrue("getPath", arraysEqual(traceNode.getPath(), fTestName)); |
338 | assertTrue("getPath", arraysEqual(catNode.getPath(), | |
339 | fTestName, Messages.TmfStatisticsData_EventTypes)); | |
340 | assertTrue("getPath", arraysEqual(elementNode.getPath(), | |
341 | fTestName, Messages.TmfStatisticsData_EventTypes, fType1.getName())); | |
79e08fd0 | 342 | } |
64636df8 | 343 | |
79e08fd0 BH |
344 | // ------------------------------------------------------------------------ |
345 | // GetValue | |
346 | // ------------------------------------------------------------------------ | |
64636df8 BH |
347 | |
348 | /** | |
255224d9 | 349 | * Test getting statistic value. |
64636df8 | 350 | */ |
79e08fd0 | 351 | public void testGetValue() { |
36033ff0 | 352 | TmfStatisticsTreeNode rootNode = fStatsData.get(TmfStatisticsTree.ROOT); |
5673a177 | 353 | TmfStatisticsTreeNode traceNode = fStatsData.get(fTestName); |
79e08fd0 | 354 | TmfStatisticsTreeNode catNode = traceNode.getChildren().iterator().next(); |
5673a177 AM |
355 | TmfStatisticsTreeNode elementNode1 = fStatsData.get(fTestName, Messages.TmfStatisticsData_EventTypes, fType1.getName()); |
356 | TmfStatisticsTreeNode elementNode3 = fStatsData.get(fTestName, Messages.TmfStatisticsData_EventTypes, fType2.getName()); | |
64636df8 | 357 | |
89c06060 AM |
358 | assertEquals("getValue", 0, rootNode.getValues().getTotal()); |
359 | assertEquals("getValue", 9, traceNode.getValues().getTotal()); | |
360 | assertEquals("getValue", 0, catNode.getValues().getTotal()); | |
361 | assertEquals("getValue", 3, elementNode1.getValues().getTotal()); | |
362 | assertEquals("getValue", 4, elementNode3.getValues().getTotal()); | |
363 | ||
364 | assertEquals("getValue", 0, rootNode.getValues().getPartial()); | |
365 | assertEquals("getValue", 9, traceNode.getValues().getPartial()); | |
366 | assertEquals("getValue", 0, catNode.getValues().getPartial()); | |
367 | assertEquals("getValue", 3, elementNode1.getValues().getPartial()); | |
368 | assertEquals("getValue", 4, elementNode3.getValues().getPartial()); | |
79e08fd0 | 369 | } |
64636df8 | 370 | |
79e08fd0 BH |
371 | // ------------------------------------------------------------------------ |
372 | // Reset | |
373 | // ------------------------------------------------------------------------ | |
64636df8 BH |
374 | |
375 | /** | |
376 | * Test reset of tree. | |
377 | */ | |
79e08fd0 | 378 | public void testReset() { |
36033ff0 | 379 | TmfStatisticsTreeNode rootNode = fStatsData.get(TmfStatisticsTree.ROOT); |
5673a177 | 380 | TmfStatisticsTreeNode traceNode = fStatsData.get(fTestName); |
79e08fd0 | 381 | TmfStatisticsTreeNode catNode = traceNode.getChildren().iterator().next(); |
5673a177 | 382 | TmfStatisticsTreeNode elementNode = fStatsData.get(fTestName, Messages.TmfStatisticsData_EventTypes, fType1.getName()); |
64636df8 | 383 | |
79e08fd0 | 384 | elementNode.reset(); |
89c06060 AM |
385 | assertEquals("reset", 0, elementNode.getValues().getTotal()); |
386 | assertEquals("reset", 0, elementNode.getValues().getPartial()); | |
64636df8 | 387 | |
79e08fd0 | 388 | catNode.reset(); |
89c06060 AM |
389 | assertEquals("reset", 0, catNode.getValues().getTotal()); |
390 | assertEquals("reset", 0, catNode.getValues().getPartial()); | |
79e08fd0 | 391 | assertEquals("reset", 0, catNode.getNbChildren()); |
5673a177 | 392 | assertNull("reset", fStatsData.get(fTestName, Messages.TmfStatisticsData_EventTypes, fType1.getName())); |
64636df8 | 393 | |
79e08fd0 | 394 | traceNode.reset(); |
89c06060 AM |
395 | assertEquals("reset", 0, traceNode.getValues().getTotal()); |
396 | assertEquals("reset", 0, traceNode.getValues().getPartial()); | |
79e08fd0 BH |
397 | // A trace always have at least one child that is eventType |
398 | assertEquals("reset", 1, traceNode.getNbChildren()); | |
399 | ||
400 | rootNode.reset(); | |
89c06060 AM |
401 | assertEquals("reset", 0, rootNode.getValues().getTotal()); |
402 | assertEquals("reset", 0, rootNode.getValues().getPartial()); | |
79e08fd0 BH |
403 | assertEquals("reset", 1, rootNode.getNbChildren()); |
404 | } | |
255224d9 | 405 | |
59b50985 MD |
406 | /** |
407 | * Test reset global value of the node in the tree. It should only clear | |
408 | * the global value without removing any node from the tree. | |
409 | */ | |
410 | public void testResetGlobalValue() { | |
36033ff0 | 411 | TmfStatisticsTreeNode rootNode = fStatsData.get(TmfStatisticsTree.ROOT); |
5673a177 | 412 | TmfStatisticsTreeNode traceNode = fStatsData.get(fTestName); |
59b50985 | 413 | TmfStatisticsTreeNode catNode = traceNode.getChildren().iterator().next(); |
5673a177 AM |
414 | TmfStatisticsTreeNode eventTypeNode1 = fStatsData.get(fTestName, Messages.TmfStatisticsData_EventTypes, fType1.getName()); |
415 | TmfStatisticsTreeNode eventTypeNode2 = fStatsData.get(fTestName, Messages.TmfStatisticsData_EventTypes, fType2.getName()); | |
59b50985 MD |
416 | |
417 | rootNode.resetGlobalValue(); | |
418 | ||
89c06060 AM |
419 | assertEquals(0, rootNode.getValues().getTotal()); |
420 | assertEquals(0, traceNode.getValues().getTotal()); | |
421 | assertEquals(0, catNode.getValues().getTotal()); | |
422 | assertEquals(0, eventTypeNode1.getValues().getTotal()); | |
423 | assertEquals(0, eventTypeNode2.getValues().getTotal()); | |
59b50985 MD |
424 | |
425 | // Checks the state of the statistics tree | |
426 | Collection<TmfStatisticsTreeNode> rootChildren = rootNode.getAllChildren(); | |
427 | assertEquals(1, rootChildren.size()); | |
428 | assertTrue(rootChildren.contains(traceNode)); | |
429 | ||
430 | Collection<TmfStatisticsTreeNode> traceChildren = traceNode.getAllChildren(); | |
431 | assertEquals(1, traceChildren.size()); | |
432 | assertTrue(traceChildren.contains(catNode)); | |
433 | ||
434 | Collection<TmfStatisticsTreeNode> catChildren = catNode.getAllChildren(); | |
435 | assertEquals(2, catChildren.size()); | |
436 | assertTrue(catChildren.contains(eventTypeNode1)); | |
437 | assertTrue(catChildren.contains(eventTypeNode2)); | |
438 | } | |
439 | ||
255224d9 MD |
440 | /** |
441 | * Test reset time range value of the node in the tree. It should only clear | |
442 | * the time range value without removing any node from the tree. | |
443 | */ | |
444 | public void testResetTimeRangeValue() { | |
36033ff0 | 445 | TmfStatisticsTreeNode rootNode = fStatsData.get(TmfStatisticsTree.ROOT); |
5673a177 | 446 | TmfStatisticsTreeNode traceNode = fStatsData.get(fTestName); |
255224d9 | 447 | TmfStatisticsTreeNode catNode = traceNode.getChildren().iterator().next(); |
5673a177 AM |
448 | TmfStatisticsTreeNode eventTypeNode1 = fStatsData.get(fTestName, Messages.TmfStatisticsData_EventTypes, fType1.getName()); |
449 | TmfStatisticsTreeNode eventTypeNode2 = fStatsData.get(fTestName, Messages.TmfStatisticsData_EventTypes, fType2.getName()); | |
255224d9 MD |
450 | |
451 | rootNode.resetTimeRangeValue(); | |
452 | ||
89c06060 AM |
453 | assertEquals(0, rootNode.getValues().getPartial()); |
454 | assertEquals(0, traceNode.getValues().getPartial()); | |
455 | assertEquals(0, catNode.getValues().getPartial()); | |
456 | assertEquals(0, eventTypeNode1.getValues().getPartial()); | |
457 | assertEquals(0, eventTypeNode2.getValues().getPartial()); | |
255224d9 MD |
458 | |
459 | // Checks the state of the statistics tree | |
460 | Collection<TmfStatisticsTreeNode> rootChildren = rootNode.getAllChildren(); | |
461 | assertEquals(1, rootChildren.size()); | |
462 | assertTrue(rootChildren.contains(traceNode)); | |
463 | ||
464 | Collection<TmfStatisticsTreeNode> traceChildren = traceNode.getAllChildren(); | |
465 | assertEquals(1, traceChildren.size()); | |
466 | assertTrue(traceChildren.contains(catNode)); | |
467 | ||
468 | Collection<TmfStatisticsTreeNode> catChildren = catNode.getAllChildren(); | |
469 | assertEquals(2, catChildren.size()); | |
470 | assertTrue(catChildren.contains(eventTypeNode1)); | |
471 | assertTrue(catChildren.contains(eventTypeNode2)); | |
472 | } | |
5673a177 AM |
473 | |
474 | /** | |
475 | * Check if two String arrays are equals, by comparing their contents. | |
476 | */ | |
477 | private static boolean arraysEqual(String[] array1, String... array2) { | |
478 | if (array1.length != array2.length) { | |
479 | return false; | |
480 | } | |
481 | for (int i = 0; i < array1.length; i++) { | |
482 | if (!array1[i].equals(array2[i])) { | |
483 | return false; | |
484 | } | |
485 | } | |
486 | return true; | |
487 | } | |
79e08fd0 | 488 | } |