Re-structure LTTng sub-project as per the Linux Tools guidelines
[deliverable/tracecompass.git] / org.eclipse.linuxtools.tmf.ui.tests / src / org / eclipse / linuxtools / tmf / ui / tests / statistics / TmfBaseColumnDataProviderTest.java
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;
21 import org.eclipse.linuxtools.tmf.core.event.TmfEvent;
22 import org.eclipse.linuxtools.tmf.core.event.TmfEventContent;
23 import org.eclipse.linuxtools.tmf.core.event.TmfEventReference;
24 import org.eclipse.linuxtools.tmf.core.event.TmfEventSource;
25 import org.eclipse.linuxtools.tmf.core.event.TmfEventType;
26 import org.eclipse.linuxtools.tmf.core.event.TmfTimestamp;
27 import org.eclipse.linuxtools.tmf.core.util.TmfFixedArray;
28 import org.eclipse.linuxtools.tmf.ui.views.statistics.ITmfExtraEventInfo;
29 import org.eclipse.linuxtools.tmf.ui.views.statistics.model.Messages;
30 import org.eclipse.linuxtools.tmf.ui.views.statistics.model.TmfBaseColumnData;
31 import org.eclipse.linuxtools.tmf.ui.views.statistics.model.TmfBaseColumnData.ITmfColumnPercentageProvider;
32 import org.eclipse.linuxtools.tmf.ui.views.statistics.model.TmfBaseColumnDataProvider;
33 import org.eclipse.linuxtools.tmf.ui.views.statistics.model.TmfBaseStatisticsTree;
34 import org.eclipse.linuxtools.tmf.ui.views.statistics.model.TmfStatisticsTreeNode;
35 @SuppressWarnings("nls")
36 public class TmfBaseColumnDataProviderTest extends TestCase {
37
38 // ------------------------------------------------------------------------
39 // Fields
40 // ------------------------------------------------------------------------
41 private final static String LEVEL_COLUMN = org.eclipse.linuxtools.tmf.ui.views.statistics.Messages.TmfStatisticsView_LevelColumn;
42 private final static String EVENTS_COUNT_COLUMN = org.eclipse.linuxtools.tmf.ui.views.statistics.Messages.TmfStatisticsView_NbEventsColumn;
43
44 private TmfBaseColumnDataProvider provider;
45
46 private String fTestName;
47
48 private final String fTypeId1 = "Some type1";
49 private final String fTypeId2 = "Some type2";
50
51 private final String fLabel0 = "label1";
52 private final String fLabel1 = "label2";
53 private final String fLabel2 = "label3";
54 private final String[] fLabels = new String[] { fLabel0, fLabel1, fLabel2 };
55
56 private final TmfTimestamp fTimestamp1 = new TmfTimestamp(12345, (byte) 2, 5);
57 private final TmfTimestamp fTimestamp2 = new TmfTimestamp(12350, (byte) 2, 5);
58 private final TmfTimestamp fTimestamp3 = new TmfTimestamp(12355, (byte) 2, 5);
59
60 private final TmfEventSource fSource = new TmfEventSource("Source");
61
62 private final TmfEventType fType1 = new TmfEventType(fTypeId1, fLabels);
63 private final TmfEventType fType2 = new TmfEventType(fTypeId1, fLabels);
64 private final TmfEventType fType3 = new TmfEventType(fTypeId2, fLabels);
65
66 private final TmfEventReference fReference = new TmfEventReference("Some reference");
67
68 private final TmfEvent fEvent1;
69 private final TmfEvent fEvent2;
70 private final TmfEvent fEvent3;
71
72 private final TmfEventContent fContent1;
73 private final TmfEventContent fContent2;
74 private final TmfEventContent fContent3;
75
76 private final TmfBaseStatisticsTree fStatsData;
77
78 private final ITmfExtraEventInfo fExtraInfo;
79
80 // ------------------------------------------------------------------------
81 // Housekeeping
82 // ------------------------------------------------------------------------
83
84 public TmfBaseColumnDataProviderTest(final String name) {
85 super(name);
86
87 fTestName = name;
88
89 fEvent1 = new TmfEvent(fTimestamp1, fSource, fType1, fReference);
90 fContent1 = new TmfEventContent(fEvent1, "Some content");
91 fEvent1.setContent(fContent1);
92
93 fEvent2 = new TmfEvent(fTimestamp1, fTimestamp2, fSource, fType2, fReference);
94 fContent2 = new TmfEventContent(fEvent2, "Some other content");
95 fEvent2.setContent(fContent2);
96
97 fEvent3 = new TmfEvent(fTimestamp2, fTimestamp3, fSource, fType3, fReference);
98 fContent3 = new TmfEventContent(fEvent3, "Some other different content");
99 fEvent3.setContent(fContent3);
100
101 fStatsData = new TmfBaseStatisticsTree();
102 fExtraInfo = new ITmfExtraEventInfo() {
103 @Override
104 public String getTraceName() {
105 return name;
106 }
107 };
108 fStatsData.getOrCreate(new TmfFixedArray<String>(fTestName, Messages.TmfStatisticsData_EventTypes));
109 fStatsData.registerEvent(fEvent1, fExtraInfo);
110 fStatsData.registerEvent(fEvent2, fExtraInfo);
111 fStatsData.registerEvent(fEvent3, fExtraInfo);
112
113 provider = new TmfBaseColumnDataProvider();
114 }
115
116 // ------------------------------------------------------------------------
117 // Get Column Data
118 // ------------------------------------------------------------------------
119
120 public void testGetColumnData() {
121 Vector<TmfBaseColumnData> columnsData = provider.getColumnData();
122 assertNotNull("getColumnData", columnsData);
123 assertEquals("getColumnData", 2, columnsData.size());
124
125 TmfStatisticsTreeNode parentNode = fStatsData.get(new TmfFixedArray<String>(fTestName));
126 TmfStatisticsTreeNode treeNode1 = fStatsData.get(new TmfFixedArray<String>(fTestName, Messages.TmfStatisticsData_EventTypes, fEvent1.getType().toString()));
127 TmfStatisticsTreeNode treeNode2 = fStatsData.get(new TmfFixedArray<String>(fTestName, Messages.TmfStatisticsData_EventTypes, fEvent3.getType().toString()));
128 ViewerComparator vComp = null;
129 for (TmfBaseColumnData columnData : columnsData) {
130 assertNotNull("getColumnData", columnData);
131 assertNotNull("getColumnData", columnData.getHeader());
132 assertNotNull("getColumnData", columnData.getTooltip());
133
134 // Testing labelProvider
135 ColumnLabelProvider labelProvider = columnData.getLabelProvider();
136 if (columnData.getHeader().compareTo(LEVEL_COLUMN) == 0) {
137 assertEquals("getColumnData", 0, labelProvider.getText(treeNode1).compareTo(treeNode1.getKey()));
138 } else if (columnData.getHeader().compareTo(EVENTS_COUNT_COLUMN) == 0) {
139 assertEquals("getColumnData", 0, labelProvider.getText(treeNode1).compareTo(Long.toString(2)));
140 }
141
142 // Testing comparator
143 vComp = columnData.getComparator();
144 if (columnData.getHeader().compareTo(LEVEL_COLUMN) == 0) {
145 assertTrue("getColumnData", vComp.compare(null, treeNode1, treeNode2) < 0);
146 assertTrue("getColumnData", vComp.compare(null, treeNode2, treeNode1) > 0);
147 assertTrue("getColumnData", vComp.compare(null, treeNode1, treeNode1) == 0);
148 } else if (columnData.getHeader().compareTo(EVENTS_COUNT_COLUMN) == 0) {
149 assertTrue("getColumnData", vComp.compare(null, treeNode1, treeNode2) > 0);
150 assertTrue("getColumnData", vComp.compare(null, treeNode2, treeNode1) < 0);
151 assertTrue("getColumnData", vComp.compare(null, treeNode1, treeNode1) == 0);
152 }
153
154 // Testing percentage provider
155 ITmfColumnPercentageProvider percentProvider = columnData.getPercentageProvider();
156 if (columnData.getHeader().compareTo(LEVEL_COLUMN) == 0) {
157 assertNull("getColumnData", percentProvider);
158 } else if (columnData.getHeader().compareTo(EVENTS_COUNT_COLUMN) == 0) {
159 double percentage = (double) treeNode1.getValue().nbEvents / parentNode.getValue().nbEvents;
160 assertEquals("getColumnData", (double) percentage, (double) percentProvider.getPercentage(treeNode1));
161 }
162 }
163 }
164 }
This page took 0.046119 seconds and 6 git commands to generate.