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
.List
;
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
.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
.TmfStatisticsTree
;
31 import org
.eclipse
.linuxtools
.tmf
.ui
.viewers
.statistics
.model
.TmfStatisticsTreeNode
;
34 * TmfBaseColumnDataProvider test cases.
36 @SuppressWarnings("nls")
37 public class TmfBaseColumnDataProviderTest
extends TestCase
{
39 // ------------------------------------------------------------------------
41 // ------------------------------------------------------------------------
42 private final static String LEVEL_COLUMN
= Messages
.TmfStatisticsView_LevelColumn
;
43 private final static String EVENTS_COUNT_COLUMN
= Messages
.TmfStatisticsView_NbEventsColumn
;
45 private TmfBaseColumnDataProvider provider
;
47 private String fTestName
;
49 private final String fContext
= "UnitTest";
51 private final String fTypeId1
= "Some type1";
52 private final String fTypeId2
= "Some type2";
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
};
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);
63 private final String fSource
= "Source";
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
));
69 private final String fReference
= "Some reference";
71 private final TmfEvent fEvent1
;
72 private final TmfEvent fEvent2
;
73 private final TmfEvent fEvent3
;
75 private final TmfEventField fContent1
;
76 private final TmfEventField fContent2
;
77 private final TmfEventField fContent3
;
79 private final TmfStatisticsTree fStatsData
;
81 // ------------------------------------------------------------------------
83 // ------------------------------------------------------------------------
87 * @param name trace name to set
89 public TmfBaseColumnDataProviderTest(final String name
) {
94 fContent1
= new TmfEventField(ITmfEventField
.ROOT_FIELD_ID
, "Some content");
95 fEvent1
= new TmfEvent(null, fTimestamp1
, fSource
, fType1
, fContent1
, fReference
);
97 fContent2
= new TmfEventField(ITmfEventField
.ROOT_FIELD_ID
, "Some other content");
98 fEvent2
= new TmfEvent(null, fTimestamp2
, fSource
, fType2
, fContent2
, fReference
);
100 fContent3
= new TmfEventField(ITmfEventField
.ROOT_FIELD_ID
, "Some other different content");
101 fEvent3
= new TmfEvent(null, fTimestamp3
, fSource
, fType3
, fContent3
, fReference
);
103 fStatsData
= new TmfStatisticsTree();
105 fStatsData
.getOrCreate(fTestName
, Messages
.TmfStatisticsData_EventTypes
);
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);
112 provider
= new TmfBaseColumnDataProvider();
115 // ------------------------------------------------------------------------
117 // ------------------------------------------------------------------------
119 * Method with test cases.
121 public void testGetColumnData() {
122 List
<TmfBaseColumnData
> columnsData
= provider
.getColumnData();
123 assertNotNull("getColumnData", columnsData
);
124 assertEquals("getColumnData", 3, columnsData
.size());
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());
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)));
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);
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
));