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