1 /*******************************************************************************
2 * Copyright (c) 2011 Ericsson
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
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
;
15 import java
.util
.Vector
;
17 import junit
.framework
.TestCase
;
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
{
38 // ------------------------------------------------------------------------
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
;
44 private TmfBaseColumnDataProvider provider
;
46 private String fTestName
;
48 private final String fTypeId1
= "Some type1";
49 private final String fTypeId2
= "Some type2";
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
};
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);
60 private final TmfEventSource fSource
= new TmfEventSource("Source");
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
);
66 private final TmfEventReference fReference
= new TmfEventReference("Some reference");
68 private final TmfEvent fEvent1
;
69 private final TmfEvent fEvent2
;
70 private final TmfEvent fEvent3
;
72 private final TmfEventContent fContent1
;
73 private final TmfEventContent fContent2
;
74 private final TmfEventContent fContent3
;
76 private final TmfBaseStatisticsTree fStatsData
;
78 private final ITmfExtraEventInfo fExtraInfo
;
80 // ------------------------------------------------------------------------
82 // ------------------------------------------------------------------------
84 public TmfBaseColumnDataProviderTest(final String name
) {
89 fEvent1
= new TmfEvent(fTimestamp1
, fSource
, fType1
, fReference
);
90 fContent1
= new TmfEventContent(fEvent1
, "Some content");
91 fEvent1
.setContent(fContent1
);
93 fEvent2
= new TmfEvent(fTimestamp1
, fTimestamp2
, fSource
, fType2
, fReference
);
94 fContent2
= new TmfEventContent(fEvent2
, "Some other content");
95 fEvent2
.setContent(fContent2
);
97 fEvent3
= new TmfEvent(fTimestamp2
, fTimestamp3
, fSource
, fType3
, fReference
);
98 fContent3
= new TmfEventContent(fEvent3
, "Some other different content");
99 fEvent3
.setContent(fContent3
);
101 fStatsData
= new TmfBaseStatisticsTree();
102 fExtraInfo
= new ITmfExtraEventInfo() {
104 public String
getTraceName() {
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
);
113 provider
= new TmfBaseColumnDataProvider();
116 // ------------------------------------------------------------------------
118 // ------------------------------------------------------------------------
120 public void testGetColumnData() {
121 Vector
<TmfBaseColumnData
> columnsData
= provider
.getColumnData();
122 assertNotNull("getColumnData", columnsData
);
123 assertEquals("getColumnData", 2, columnsData
.size());
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());
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)));
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);
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
));