tmf: Decouple tmf.core unit tests from TmfEvent
[deliverable/tracecompass.git] / org.eclipse.linuxtools.tmf.ui.tests / src / org / eclipse / linuxtools / tmf / ui / tests / statistics / TmfBaseColumnDataProviderTest.java
CommitLineData
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 *******************************************************************************/
13package org.eclipse.linuxtools.tmf.ui.tests.statistics;
14
9fa32496 15import java.util.List;
79e08fd0
BH
16
17import junit.framework.TestCase;
18
19import org.eclipse.jface.viewers.ColumnLabelProvider;
20import org.eclipse.jface.viewers.ViewerComparator;
2771b032 21import org.eclipse.linuxtools.tmf.core.event.ITmfEvent;
4c564a2d 22import org.eclipse.linuxtools.tmf.core.event.ITmfEventField;
6c13869b 23import org.eclipse.linuxtools.tmf.core.event.TmfEvent;
4c564a2d 24import org.eclipse.linuxtools.tmf.core.event.TmfEventField;
6c13869b
FC
25import org.eclipse.linuxtools.tmf.core.event.TmfEventType;
26import org.eclipse.linuxtools.tmf.core.event.TmfTimestamp;
cfd22ad0
MD
27import org.eclipse.linuxtools.tmf.ui.viewers.statistics.model.Messages;
28import org.eclipse.linuxtools.tmf.ui.viewers.statistics.model.TmfBaseColumnData;
29import org.eclipse.linuxtools.tmf.ui.viewers.statistics.model.TmfBaseColumnData.ITmfColumnPercentageProvider;
30import org.eclipse.linuxtools.tmf.ui.viewers.statistics.model.TmfBaseColumnDataProvider;
36033ff0 31import org.eclipse.linuxtools.tmf.ui.viewers.statistics.model.TmfStatisticsTree;
cfd22ad0 32import org.eclipse.linuxtools.tmf.ui.viewers.statistics.model.TmfStatisticsTreeNode;
64636df8
BH
33
34/**
35 * TmfBaseColumnDataProvider test cases.
36 */
79e08fd0
BH
37@SuppressWarnings("nls")
38public 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}
This page took 0.045655 seconds and 5 git commands to generate.