Commit | Line | Data |
---|---|---|
79e08fd0 BH |
1 | /******************************************************************************* |
2 | * Copyright (c) 2011 Ericsson | |
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 | * Mathieu Denis (mathieu.denis@polymtl.ca) - Initial API and Implementation | |
11 | * Bernd Hufmann - Fixed header and warnings | |
12 | *******************************************************************************/ | |
13 | package org.eclipse.linuxtools.tmf.ui.tests.statistics; | |
14 | ||
15 | import java.util.Vector; | |
16 | ||
17 | import junit.framework.TestCase; | |
18 | ||
19 | import org.eclipse.jface.viewers.ColumnLabelProvider; | |
20 | import org.eclipse.jface.viewers.ViewerComparator; | |
4c564a2d | 21 | import org.eclipse.linuxtools.tmf.core.event.ITmfEventField; |
6c13869b | 22 | import org.eclipse.linuxtools.tmf.core.event.TmfEvent; |
4c564a2d | 23 | import org.eclipse.linuxtools.tmf.core.event.TmfEventField; |
6c13869b FC |
24 | import org.eclipse.linuxtools.tmf.core.event.TmfEventType; |
25 | import org.eclipse.linuxtools.tmf.core.event.TmfTimestamp; | |
26 | import org.eclipse.linuxtools.tmf.core.util.TmfFixedArray; | |
79e08fd0 BH |
27 | import org.eclipse.linuxtools.tmf.ui.views.statistics.ITmfExtraEventInfo; |
28 | import org.eclipse.linuxtools.tmf.ui.views.statistics.model.Messages; | |
29 | import org.eclipse.linuxtools.tmf.ui.views.statistics.model.TmfBaseColumnData; | |
30 | import org.eclipse.linuxtools.tmf.ui.views.statistics.model.TmfBaseColumnData.ITmfColumnPercentageProvider; | |
31 | import org.eclipse.linuxtools.tmf.ui.views.statistics.model.TmfBaseColumnDataProvider; | |
32 | import org.eclipse.linuxtools.tmf.ui.views.statistics.model.TmfBaseStatisticsTree; | |
33 | import org.eclipse.linuxtools.tmf.ui.views.statistics.model.TmfStatisticsTreeNode; | |
79e08fd0 BH |
34 | @SuppressWarnings("nls") |
35 | public class TmfBaseColumnDataProviderTest extends TestCase { | |
36 | ||
37 | // ------------------------------------------------------------------------ | |
38 | // Fields | |
39 | // ------------------------------------------------------------------------ | |
40 | private final static String LEVEL_COLUMN = org.eclipse.linuxtools.tmf.ui.views.statistics.Messages.TmfStatisticsView_LevelColumn; | |
41 | private final static String EVENTS_COUNT_COLUMN = org.eclipse.linuxtools.tmf.ui.views.statistics.Messages.TmfStatisticsView_NbEventsColumn; | |
42 | ||
43 | private TmfBaseColumnDataProvider provider; | |
44 | ||
45 | private String fTestName; | |
46 | ||
cbbcc354 | 47 | private final String fContext = "UnitTest"; |
48 | ||
79e08fd0 BH |
49 | private final String fTypeId1 = "Some type1"; |
50 | private final String fTypeId2 = "Some type2"; | |
51 | ||
52 | private final String fLabel0 = "label1"; | |
53 | private final String fLabel1 = "label2"; | |
54 | private final String fLabel2 = "label3"; | |
55 | private final String[] fLabels = new String[] { fLabel0, fLabel1, fLabel2 }; | |
56 | ||
57 | private final TmfTimestamp fTimestamp1 = new TmfTimestamp(12345, (byte) 2, 5); | |
58 | private final TmfTimestamp fTimestamp2 = new TmfTimestamp(12350, (byte) 2, 5); | |
59 | private final TmfTimestamp fTimestamp3 = new TmfTimestamp(12355, (byte) 2, 5); | |
60 | ||
99005796 | 61 | private final String fSource = "Source"; |
79e08fd0 | 62 | |
4c564a2d FC |
63 | private final TmfEventType fType1 = new TmfEventType(fContext, fTypeId1, TmfEventField.makeRoot(fLabels)); |
64 | private final TmfEventType fType2 = new TmfEventType(fContext, fTypeId1, TmfEventField.makeRoot(fLabels)); | |
65 | private final TmfEventType fType3 = new TmfEventType(fContext, fTypeId2, TmfEventField.makeRoot(fLabels)); | |
79e08fd0 | 66 | |
4641c2f7 | 67 | private final String fReference = "Some reference"; |
79e08fd0 BH |
68 | |
69 | private final TmfEvent fEvent1; | |
70 | private final TmfEvent fEvent2; | |
71 | private final TmfEvent fEvent3; | |
72 | ||
4c564a2d FC |
73 | private final TmfEventField fContent1; |
74 | private final TmfEventField fContent2; | |
75 | private final TmfEventField fContent3; | |
79e08fd0 BH |
76 | |
77 | private final TmfBaseStatisticsTree fStatsData; | |
78 | ||
79 | private final ITmfExtraEventInfo fExtraInfo; | |
80 | ||
81 | // ------------------------------------------------------------------------ | |
82 | // Housekeeping | |
83 | // ------------------------------------------------------------------------ | |
84 | ||
85 | public TmfBaseColumnDataProviderTest(final String name) { | |
86 | super(name); | |
87 | ||
88 | fTestName = name; | |
89 | ||
4c564a2d | 90 | fContent1 = new TmfEventField(ITmfEventField.ROOT_ID, "Some content"); |
7b477cc3 | 91 | fEvent1 = new TmfEvent(null, fTimestamp1, fSource, fType1, fContent1, fReference); |
79e08fd0 | 92 | |
4c564a2d | 93 | fContent2 = new TmfEventField(ITmfEventField.ROOT_ID, "Some other content"); |
7b477cc3 | 94 | fEvent2 = new TmfEvent(null, fTimestamp2, fSource, fType2, fContent2, fReference); |
79e08fd0 | 95 | |
4c564a2d | 96 | fContent3 = new TmfEventField(ITmfEventField.ROOT_ID, "Some other different content"); |
7b477cc3 | 97 | fEvent3 = new TmfEvent(null, fTimestamp3, fSource, fType3, fContent3, fReference); |
79e08fd0 BH |
98 | |
99 | fStatsData = new TmfBaseStatisticsTree(); | |
100 | fExtraInfo = new ITmfExtraEventInfo() { | |
101 | @Override | |
102 | public String getTraceName() { | |
103 | return name; | |
104 | } | |
105 | }; | |
106 | fStatsData.getOrCreate(new TmfFixedArray<String>(fTestName, Messages.TmfStatisticsData_EventTypes)); | |
107 | fStatsData.registerEvent(fEvent1, fExtraInfo); | |
108 | fStatsData.registerEvent(fEvent2, fExtraInfo); | |
109 | fStatsData.registerEvent(fEvent3, fExtraInfo); | |
110 | ||
111 | provider = new TmfBaseColumnDataProvider(); | |
112 | } | |
113 | ||
114 | // ------------------------------------------------------------------------ | |
115 | // Get Column Data | |
116 | // ------------------------------------------------------------------------ | |
117 | ||
118 | public void testGetColumnData() { | |
119 | Vector<TmfBaseColumnData> columnsData = provider.getColumnData(); | |
120 | assertNotNull("getColumnData", columnsData); | |
121 | assertEquals("getColumnData", 2, columnsData.size()); | |
122 | ||
123 | TmfStatisticsTreeNode parentNode = fStatsData.get(new TmfFixedArray<String>(fTestName)); | |
124 | TmfStatisticsTreeNode treeNode1 = fStatsData.get(new TmfFixedArray<String>(fTestName, Messages.TmfStatisticsData_EventTypes, fEvent1.getType().toString())); | |
125 | TmfStatisticsTreeNode treeNode2 = fStatsData.get(new TmfFixedArray<String>(fTestName, Messages.TmfStatisticsData_EventTypes, fEvent3.getType().toString())); | |
126 | ViewerComparator vComp = null; | |
127 | for (TmfBaseColumnData columnData : columnsData) { | |
128 | assertNotNull("getColumnData", columnData); | |
129 | assertNotNull("getColumnData", columnData.getHeader()); | |
130 | assertNotNull("getColumnData", columnData.getTooltip()); | |
131 | ||
132 | // Testing labelProvider | |
133 | ColumnLabelProvider labelProvider = columnData.getLabelProvider(); | |
134 | if (columnData.getHeader().compareTo(LEVEL_COLUMN) == 0) { | |
135 | assertEquals("getColumnData", 0, labelProvider.getText(treeNode1).compareTo(treeNode1.getKey())); | |
136 | } else if (columnData.getHeader().compareTo(EVENTS_COUNT_COLUMN) == 0) { | |
137 | assertEquals("getColumnData", 0, labelProvider.getText(treeNode1).compareTo(Long.toString(2))); | |
138 | } | |
139 | ||
140 | // Testing comparator | |
141 | vComp = columnData.getComparator(); | |
142 | if (columnData.getHeader().compareTo(LEVEL_COLUMN) == 0) { | |
143 | assertTrue("getColumnData", vComp.compare(null, treeNode1, treeNode2) < 0); | |
144 | assertTrue("getColumnData", vComp.compare(null, treeNode2, treeNode1) > 0); | |
145 | assertTrue("getColumnData", vComp.compare(null, treeNode1, treeNode1) == 0); | |
146 | } else if (columnData.getHeader().compareTo(EVENTS_COUNT_COLUMN) == 0) { | |
147 | assertTrue("getColumnData", vComp.compare(null, treeNode1, treeNode2) > 0); | |
148 | assertTrue("getColumnData", vComp.compare(null, treeNode2, treeNode1) < 0); | |
149 | assertTrue("getColumnData", vComp.compare(null, treeNode1, treeNode1) == 0); | |
150 | } | |
151 | ||
152 | // Testing percentage provider | |
153 | ITmfColumnPercentageProvider percentProvider = columnData.getPercentageProvider(); | |
154 | if (columnData.getHeader().compareTo(LEVEL_COLUMN) == 0) { | |
155 | assertNull("getColumnData", percentProvider); | |
156 | } else if (columnData.getHeader().compareTo(EVENTS_COUNT_COLUMN) == 0) { | |
157 | double percentage = (double) treeNode1.getValue().nbEvents / parentNode.getValue().nbEvents; | |
158 | assertEquals("getColumnData", (double) percentage, (double) percentProvider.getPercentage(treeNode1)); | |
159 | } | |
160 | } | |
161 | } | |
162 | } |