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