tmf: Drop the use of TmfFixedArray for statistics
[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.List;
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.ITmfEventField;
22 import org.eclipse.linuxtools.tmf.core.event.TmfEvent;
23 import org.eclipse.linuxtools.tmf.core.event.TmfEventField;
24 import org.eclipse.linuxtools.tmf.core.event.TmfEventType;
25 import org.eclipse.linuxtools.tmf.core.event.TmfTimestamp;
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;
30 import org.eclipse.linuxtools.tmf.ui.viewers.statistics.model.TmfBaseStatisticsTree;
31 import org.eclipse.linuxtools.tmf.ui.viewers.statistics.model.TmfStatisticsTreeNode;
32
33 /**
34 * TmfBaseColumnDataProvider test cases.
35 */
36 @SuppressWarnings("nls")
37 public class TmfBaseColumnDataProviderTest extends TestCase {
38
39 // ------------------------------------------------------------------------
40 // Fields
41 // ------------------------------------------------------------------------
42 private final static String LEVEL_COLUMN = Messages.TmfStatisticsView_LevelColumn;
43 private final static String EVENTS_COUNT_COLUMN = Messages.TmfStatisticsView_NbEventsColumn;
44
45 private TmfBaseColumnDataProvider provider;
46
47 private String fTestName;
48
49 private final String fContext = "UnitTest";
50
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
63 private final String fSource = "Source";
64
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));
68
69 private final String fReference = "Some reference";
70
71 private final TmfEvent fEvent1;
72 private final TmfEvent fEvent2;
73 private final TmfEvent fEvent3;
74
75 private final TmfEventField fContent1;
76 private final TmfEventField fContent2;
77 private final TmfEventField fContent3;
78
79 private final TmfBaseStatisticsTree fStatsData;
80
81 // ------------------------------------------------------------------------
82 // Housekeeping
83 // ------------------------------------------------------------------------
84
85 /**
86 * Constructor
87 * @param name trace name to set
88 */
89 public TmfBaseColumnDataProviderTest(final String name) {
90 super(name);
91
92 fTestName = name;
93
94 fContent1 = new TmfEventField(ITmfEventField.ROOT_FIELD_ID, "Some content");
95 fEvent1 = new TmfEvent(null, fTimestamp1, fSource, fType1, fContent1, fReference);
96
97 fContent2 = new TmfEventField(ITmfEventField.ROOT_FIELD_ID, "Some other content");
98 fEvent2 = new TmfEvent(null, fTimestamp2, fSource, fType2, fContent2, fReference);
99
100 fContent3 = new TmfEventField(ITmfEventField.ROOT_FIELD_ID, "Some other different content");
101 fEvent3 = new TmfEvent(null, fTimestamp3, fSource, fType3, fContent3, fReference);
102
103 fStatsData = new TmfBaseStatisticsTree();
104
105 fStatsData.getOrCreate(fTestName, Messages.TmfStatisticsData_EventTypes);
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);
111
112 provider = new TmfBaseColumnDataProvider();
113 }
114
115 // ------------------------------------------------------------------------
116 // Get Column Data
117 // ------------------------------------------------------------------------
118 /**
119 * Method with test cases.
120 */
121 public void testGetColumnData() {
122 List<TmfBaseColumnData> columnsData = provider.getColumnData();
123 assertNotNull("getColumnData", columnsData);
124 assertEquals("getColumnData", 3, columnsData.size());
125
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());
129 ViewerComparator vComp = null;
130 for (TmfBaseColumnData columnData : columnsData) {
131 assertNotNull("getColumnData", columnData);
132 assertNotNull("getColumnData", columnData.getHeader());
133 assertNotNull("getColumnData", columnData.getTooltip());
134
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) {
140 assertEquals("getColumnData", 0, labelProvider.getText(treeNode1).compareTo(Long.toString(1)));
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) {
150 assertTrue("getColumnData", vComp.compare(null, treeNode1, treeNode2) == 0);
151 assertTrue("getColumnData", vComp.compare(null, treeNode2, treeNode1) == 0);
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) {
160 double percentage = (double) treeNode1.getValues().getTotal() / parentNode.getValues().getTotal();
161 assertEquals("getColumnData", percentage, percentProvider.getPercentage(treeNode1));
162 }
163 }
164 }
165 }
This page took 0.033874 seconds and 5 git commands to generate.