tmf: Move timestamps to their own package
[deliverable/tracecompass.git] / org.eclipse.linuxtools.tmf.ui.tests / src / org / eclipse / linuxtools / tmf / ui / tests / statistics / TmfBaseColumnDataProviderTest.java
1 /*******************************************************************************
2 * Copyright (c) 2011, 2013 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 * Alexandre Montplaisir - Port to JUnit4
13 *******************************************************************************/
14
15 package org.eclipse.linuxtools.tmf.ui.tests.statistics;
16
17 import static org.junit.Assert.assertEquals;
18 import static org.junit.Assert.assertNotNull;
19 import static org.junit.Assert.assertNull;
20 import static org.junit.Assert.assertTrue;
21
22 import java.util.List;
23
24 import org.eclipse.jface.viewers.ColumnLabelProvider;
25 import org.eclipse.jface.viewers.ViewerComparator;
26 import org.eclipse.linuxtools.tmf.core.event.ITmfEvent;
27 import org.eclipse.linuxtools.tmf.core.event.ITmfEventField;
28 import org.eclipse.linuxtools.tmf.core.event.TmfEvent;
29 import org.eclipse.linuxtools.tmf.core.event.TmfEventField;
30 import org.eclipse.linuxtools.tmf.core.event.TmfEventType;
31 import org.eclipse.linuxtools.tmf.core.timestamp.TmfTimestamp;
32 import org.eclipse.linuxtools.tmf.ui.viewers.statistics.model.Messages;
33 import org.eclipse.linuxtools.tmf.ui.viewers.statistics.model.TmfBaseColumnData;
34 import org.eclipse.linuxtools.tmf.ui.viewers.statistics.model.TmfBaseColumnData.ITmfColumnPercentageProvider;
35 import org.eclipse.linuxtools.tmf.ui.viewers.statistics.model.TmfBaseColumnDataProvider;
36 import org.eclipse.linuxtools.tmf.ui.viewers.statistics.model.TmfStatisticsTree;
37 import org.eclipse.linuxtools.tmf.ui.viewers.statistics.model.TmfStatisticsTreeNode;
38 import org.junit.Test;
39
40 /**
41 * TmfBaseColumnDataProvider test cases.
42 */
43 @SuppressWarnings("nls")
44 public class TmfBaseColumnDataProviderTest {
45
46 // ------------------------------------------------------------------------
47 // Fields
48 // ------------------------------------------------------------------------
49
50 private static final double DELTA = 1e-15;
51
52 private final static String LEVEL_COLUMN = Messages.TmfStatisticsView_LevelColumn;
53 private final static String EVENTS_COUNT_COLUMN = Messages.TmfStatisticsView_NbEventsColumn;
54
55 private TmfBaseColumnDataProvider provider;
56
57 private static final String fTestName = "ColumnDataProviderTest";
58
59 private final String fContext = "UnitTest";
60
61 private final String fTypeId1 = "Some type1";
62 private final String fTypeId2 = "Some type2";
63
64 private final String fLabel0 = "label1";
65 private final String fLabel1 = "label2";
66 private final String fLabel2 = "label3";
67 private final String[] fLabels = new String[] { fLabel0, fLabel1, fLabel2 };
68
69 private final TmfTimestamp fTimestamp1 = new TmfTimestamp(12345, (byte) 2, 5);
70 private final TmfTimestamp fTimestamp2 = new TmfTimestamp(12350, (byte) 2, 5);
71 private final TmfTimestamp fTimestamp3 = new TmfTimestamp(12355, (byte) 2, 5);
72
73 private final String fSource = "Source";
74
75 private final TmfEventType fType1 = new TmfEventType(fContext, fTypeId1, TmfEventField.makeRoot(fLabels));
76 private final TmfEventType fType2 = new TmfEventType(fContext, fTypeId1, TmfEventField.makeRoot(fLabels));
77 private final TmfEventType fType3 = new TmfEventType(fContext, fTypeId2, TmfEventField.makeRoot(fLabels));
78
79 private final String fReference = "Some reference";
80
81 private final ITmfEvent fEvent1;
82 private final ITmfEvent fEvent2;
83 private final ITmfEvent fEvent3;
84
85 private final TmfEventField fContent1;
86 private final TmfEventField fContent2;
87 private final TmfEventField fContent3;
88
89 private final TmfStatisticsTree fStatsData;
90
91 // ------------------------------------------------------------------------
92 // Housekeeping
93 // ------------------------------------------------------------------------
94
95 /**
96 * Constructor
97 */
98 public TmfBaseColumnDataProviderTest() {
99 fContent1 = new TmfEventField(ITmfEventField.ROOT_FIELD_ID, "Some content");
100 fEvent1 = new TmfEvent(null, fTimestamp1, fSource, fType1, fContent1, fReference);
101
102 fContent2 = new TmfEventField(ITmfEventField.ROOT_FIELD_ID, "Some other content");
103 fEvent2 = new TmfEvent(null, fTimestamp2, fSource, fType2, fContent2, fReference);
104
105 fContent3 = new TmfEventField(ITmfEventField.ROOT_FIELD_ID, "Some other different content");
106 fEvent3 = new TmfEvent(null, fTimestamp3, fSource, fType3, fContent3, fReference);
107
108 fStatsData = new TmfStatisticsTree();
109
110 fStatsData.getOrCreateNode(fTestName, Messages.TmfStatisticsData_EventTypes);
111
112 fStatsData.setTotal(fTestName, true, 3);
113 fStatsData.setTypeCount(fTestName, fEvent1.getType().getName(), true, 1);
114 fStatsData.setTypeCount(fTestName, fEvent2.getType().getName(), true, 1);
115 fStatsData.setTypeCount(fTestName, fEvent3.getType().getName(), true, 1);
116
117 provider = new TmfBaseColumnDataProvider();
118 }
119
120 // ------------------------------------------------------------------------
121 // Get Column Data
122 // ------------------------------------------------------------------------
123
124 /**
125 * Method with test cases.
126 */
127 @Test
128 public void testGetColumnData() {
129 List<TmfBaseColumnData> columnsData = provider.getColumnData();
130 assertNotNull("getColumnData", columnsData);
131 assertEquals("getColumnData", 3, columnsData.size());
132
133 TmfStatisticsTreeNode parentNode = fStatsData.getNode(fTestName);
134 TmfStatisticsTreeNode treeNode1 = fStatsData.getNode(fTestName, Messages.TmfStatisticsData_EventTypes, fEvent1.getType().getName());
135 TmfStatisticsTreeNode treeNode2 = fStatsData.getNode(fTestName, Messages.TmfStatisticsData_EventTypes, fEvent3.getType().getName());
136 ViewerComparator vComp = null;
137 for (TmfBaseColumnData columnData : columnsData) {
138 assertNotNull("getColumnData", columnData);
139 assertNotNull("getColumnData", columnData.getHeader());
140 assertNotNull("getColumnData", columnData.getTooltip());
141
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.getName()));
146 } else if (columnData.getHeader().compareTo(EVENTS_COUNT_COLUMN) == 0) {
147 assertEquals("getColumnData", 0, labelProvider.getText(treeNode1).compareTo(Long.toString(1)));
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) {
167 double percentage = (double) treeNode1.getValues().getTotal() / parentNode.getValues().getTotal();
168 assertEquals("getColumnData", percentage, percentProvider.getPercentage(treeNode1), DELTA);
169 }
170 }
171 }
172 }
This page took 0.033729 seconds and 5 git commands to generate.