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; | |
2771b032 | 21 | import org.eclipse.linuxtools.tmf.core.event.ITmfEvent; |
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 MD |
27 | import org.eclipse.linuxtools.tmf.ui.viewers.statistics.model.Messages; |
28 | import org.eclipse.linuxtools.tmf.ui.viewers.statistics.model.TmfBaseColumnData; | |
29 | import org.eclipse.linuxtools.tmf.ui.viewers.statistics.model.TmfBaseColumnData.ITmfColumnPercentageProvider; | |
30 | import org.eclipse.linuxtools.tmf.ui.viewers.statistics.model.TmfBaseColumnDataProvider; | |
36033ff0 | 31 | import org.eclipse.linuxtools.tmf.ui.viewers.statistics.model.TmfStatisticsTree; |
cfd22ad0 | 32 | import org.eclipse.linuxtools.tmf.ui.viewers.statistics.model.TmfStatisticsTreeNode; |
64636df8 BH |
33 | |
34 | /** | |
35 | * TmfBaseColumnDataProvider test cases. | |
36 | */ | |
79e08fd0 BH |
37 | @SuppressWarnings("nls") |
38 | public class TmfBaseColumnDataProviderTest extends TestCase { | |
39 | ||
40 | // ------------------------------------------------------------------------ | |
41 | // Fields | |
42 | // ------------------------------------------------------------------------ | |
05627bda MD |
43 | private final static String LEVEL_COLUMN = Messages.TmfStatisticsView_LevelColumn; |
44 | private final static String EVENTS_COUNT_COLUMN = Messages.TmfStatisticsView_NbEventsColumn; | |
abbdd66a | 45 | |
79e08fd0 BH |
46 | private TmfBaseColumnDataProvider provider; |
47 | ||
48 | private String fTestName; | |
49 | ||
cbbcc354 | 50 | private final String fContext = "UnitTest"; |
abbdd66a | 51 | |
79e08fd0 BH |
52 | private final String fTypeId1 = "Some type1"; |
53 | private final String fTypeId2 = "Some type2"; | |
54 | ||
55 | private final String fLabel0 = "label1"; | |
56 | private final String fLabel1 = "label2"; | |
57 | private final String fLabel2 = "label3"; | |
58 | private final String[] fLabels = new String[] { fLabel0, fLabel1, fLabel2 }; | |
59 | ||
60 | private final TmfTimestamp fTimestamp1 = new TmfTimestamp(12345, (byte) 2, 5); | |
61 | private final TmfTimestamp fTimestamp2 = new TmfTimestamp(12350, (byte) 2, 5); | |
62 | private final TmfTimestamp fTimestamp3 = new TmfTimestamp(12355, (byte) 2, 5); | |
63 | ||
09667aa4 | 64 | private final String fSource = "Source"; |
79e08fd0 | 65 | |
4c564a2d FC |
66 | private final TmfEventType fType1 = new TmfEventType(fContext, fTypeId1, TmfEventField.makeRoot(fLabels)); |
67 | private final TmfEventType fType2 = new TmfEventType(fContext, fTypeId1, TmfEventField.makeRoot(fLabels)); | |
68 | private final TmfEventType fType3 = new TmfEventType(fContext, fTypeId2, TmfEventField.makeRoot(fLabels)); | |
79e08fd0 | 69 | |
4641c2f7 | 70 | private final String fReference = "Some reference"; |
79e08fd0 | 71 | |
2771b032 AM |
72 | private final ITmfEvent fEvent1; |
73 | private final ITmfEvent fEvent2; | |
74 | private final ITmfEvent fEvent3; | |
79e08fd0 | 75 | |
4c564a2d FC |
76 | private final TmfEventField fContent1; |
77 | private final TmfEventField fContent2; | |
78 | private final TmfEventField fContent3; | |
79e08fd0 | 79 | |
36033ff0 | 80 | private final TmfStatisticsTree fStatsData; |
79e08fd0 | 81 | |
79e08fd0 BH |
82 | // ------------------------------------------------------------------------ |
83 | // Housekeeping | |
84 | // ------------------------------------------------------------------------ | |
85 | ||
64636df8 BH |
86 | /** |
87 | * Constructor | |
88 | * @param name trace name to set | |
89 | */ | |
79e08fd0 BH |
90 | public TmfBaseColumnDataProviderTest(final String name) { |
91 | super(name); | |
92 | ||
93 | fTestName = name; | |
94 | ||
a4115405 | 95 | fContent1 = new TmfEventField(ITmfEventField.ROOT_FIELD_ID, "Some content"); |
7b477cc3 | 96 | fEvent1 = new TmfEvent(null, fTimestamp1, fSource, fType1, fContent1, fReference); |
79e08fd0 | 97 | |
a4115405 | 98 | fContent2 = new TmfEventField(ITmfEventField.ROOT_FIELD_ID, "Some other content"); |
7b477cc3 | 99 | fEvent2 = new TmfEvent(null, fTimestamp2, fSource, fType2, fContent2, fReference); |
79e08fd0 | 100 | |
a4115405 | 101 | fContent3 = new TmfEventField(ITmfEventField.ROOT_FIELD_ID, "Some other different content"); |
7b477cc3 | 102 | fEvent3 = new TmfEvent(null, fTimestamp3, fSource, fType3, fContent3, fReference); |
79e08fd0 | 103 | |
36033ff0 | 104 | fStatsData = new TmfStatisticsTree(); |
89c06060 | 105 | |
7588c810 | 106 | fStatsData.getOrCreateNode(fTestName, Messages.TmfStatisticsData_EventTypes); |
89c06060 AM |
107 | |
108 | fStatsData.setTotal(fTestName, true, 3); | |
109 | fStatsData.setTypeCount(fTestName, fEvent1.getType().getName(), true, 1); | |
110 | fStatsData.setTypeCount(fTestName, fEvent2.getType().getName(), true, 1); | |
111 | fStatsData.setTypeCount(fTestName, fEvent3.getType().getName(), true, 1); | |
79e08fd0 BH |
112 | |
113 | provider = new TmfBaseColumnDataProvider(); | |
114 | } | |
115 | ||
116 | // ------------------------------------------------------------------------ | |
117 | // Get Column Data | |
118 | // ------------------------------------------------------------------------ | |
64636df8 BH |
119 | /** |
120 | * Method with test cases. | |
121 | */ | |
79e08fd0 | 122 | public void testGetColumnData() { |
9fa32496 | 123 | List<TmfBaseColumnData> columnsData = provider.getColumnData(); |
79e08fd0 | 124 | assertNotNull("getColumnData", columnsData); |
22bd5c59 | 125 | assertEquals("getColumnData", 3, columnsData.size()); |
79e08fd0 | 126 | |
7588c810 AM |
127 | TmfStatisticsTreeNode parentNode = fStatsData.getNode(fTestName); |
128 | TmfStatisticsTreeNode treeNode1 = fStatsData.getNode(fTestName, Messages.TmfStatisticsData_EventTypes, fEvent1.getType().getName()); | |
129 | TmfStatisticsTreeNode treeNode2 = fStatsData.getNode(fTestName, Messages.TmfStatisticsData_EventTypes, fEvent3.getType().getName()); | |
79e08fd0 BH |
130 | ViewerComparator vComp = null; |
131 | for (TmfBaseColumnData columnData : columnsData) { | |
132 | assertNotNull("getColumnData", columnData); | |
133 | assertNotNull("getColumnData", columnData.getHeader()); | |
134 | assertNotNull("getColumnData", columnData.getTooltip()); | |
abbdd66a | 135 | |
79e08fd0 BH |
136 | // Testing labelProvider |
137 | ColumnLabelProvider labelProvider = columnData.getLabelProvider(); | |
138 | if (columnData.getHeader().compareTo(LEVEL_COLUMN) == 0) { | |
7588c810 | 139 | assertEquals("getColumnData", 0, labelProvider.getText(treeNode1).compareTo(treeNode1.getName())); |
79e08fd0 | 140 | } else if (columnData.getHeader().compareTo(EVENTS_COUNT_COLUMN) == 0) { |
89c06060 | 141 | assertEquals("getColumnData", 0, labelProvider.getText(treeNode1).compareTo(Long.toString(1))); |
79e08fd0 BH |
142 | } |
143 | ||
144 | // Testing comparator | |
145 | vComp = columnData.getComparator(); | |
146 | if (columnData.getHeader().compareTo(LEVEL_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 | } else if (columnData.getHeader().compareTo(EVENTS_COUNT_COLUMN) == 0) { | |
89c06060 AM |
151 | assertTrue("getColumnData", vComp.compare(null, treeNode1, treeNode2) == 0); |
152 | assertTrue("getColumnData", vComp.compare(null, treeNode2, treeNode1) == 0); | |
79e08fd0 BH |
153 | assertTrue("getColumnData", vComp.compare(null, treeNode1, treeNode1) == 0); |
154 | } | |
155 | ||
156 | // Testing percentage provider | |
157 | ITmfColumnPercentageProvider percentProvider = columnData.getPercentageProvider(); | |
158 | if (columnData.getHeader().compareTo(LEVEL_COLUMN) == 0) { | |
159 | assertNull("getColumnData", percentProvider); | |
160 | } else if (columnData.getHeader().compareTo(EVENTS_COUNT_COLUMN) == 0) { | |
89c06060 | 161 | double percentage = (double) treeNode1.getValues().getTotal() / parentNode.getValues().getTotal(); |
abbdd66a | 162 | assertEquals("getColumnData", percentage, percentProvider.getPercentage(treeNode1)); |
79e08fd0 BH |
163 | } |
164 | } | |
165 | } | |
09667aa4 | 166 | } |