1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 package net.grinder.statistics;
24
25 import junit.framework.TestCase;
26
27 import java.util.Comparator;
28
29 import net.grinder.statistics.StatisticsSet;
30
31
32
33
34
35
36
37
38 public class TestStatisticsView extends TestCase {
39
40 private ExpressionView[] m_views;
41
42 private int m_numberOfUniqueViews;
43
44 protected void setUp() throws Exception {
45 final StatisticExpressionFactory statisticExpressionFactory =
46 StatisticsServicesImplementation.getInstance().getStatisticExpressionFactory();
47
48 m_views = new ExpressionView[] {
49 statisticExpressionFactory.createExpressionView("One", "(+ userLong0 userLong1)", false),
50 statisticExpressionFactory.createExpressionView("Two", "userLong0", false),
51 statisticExpressionFactory.createExpressionView("Three", "(+ userLong0 userLong1)", false),
52 statisticExpressionFactory.createExpressionView("Four", "userLong1", false),
53 statisticExpressionFactory.createExpressionView("One", "(+ userLong0 userLong1)", false),
54 };
55
56 m_numberOfUniqueViews = 4;
57 }
58
59 public void testGetExpressionViews() throws Exception {
60 final StatisticsView statisticsView = new StatisticsView();
61
62 assertEquals(0, statisticsView.getExpressionViews().length);
63
64 for (int i = 0; i < m_views.length; ++i) {
65 statisticsView.add(m_views[i]);
66 }
67
68 final ExpressionView[] expressionViews = statisticsView
69 .getExpressionViews();
70
71 assertEquals(m_numberOfUniqueViews, expressionViews.length);
72
73
74 assertEquals(m_views[0], expressionViews[0]);
75 assertEquals(m_views[1], expressionViews[1]);
76 assertEquals(m_views[2], expressionViews[2]);
77 assertEquals(m_views[3], expressionViews[3]);
78
79
80 final StatisticsView statisticsView2 = new StatisticsView();
81
82 for (int i = m_views.length - 1; i >= 0; --i) {
83 statisticsView2.add(m_views[(2 + i) % m_views.length]);
84 }
85
86 final ExpressionView[] expressionViews2 = statisticsView
87 .getExpressionViews();
88
89 assertEquals(m_numberOfUniqueViews, expressionViews2.length);
90
91
92 assertEquals(m_views[0], expressionViews2[0]);
93 assertEquals(m_views[1], expressionViews2[1]);
94 assertEquals(m_views[2], expressionViews2[2]);
95 assertEquals(m_views[3], expressionViews2[3]);
96 }
97
98 public void testAddStatisticsView() throws Exception {
99 final StatisticsView statisticsView = new StatisticsView();
100
101 statisticsView.add(statisticsView);
102 assertEquals(0, statisticsView.getExpressionViews().length);
103
104 final StatisticsView statisticsView2 = new StatisticsView();
105
106 statisticsView.add(statisticsView);
107 assertEquals(0, statisticsView.getExpressionViews().length);
108
109 for (int i = 0; i < m_views.length; ++i) {
110 statisticsView.add(m_views[i]);
111 }
112
113 statisticsView2.add(statisticsView);
114 assertEquals(m_numberOfUniqueViews,
115 statisticsView2.getExpressionViews().length);
116
117 statisticsView2.add(statisticsView);
118 assertEquals(m_numberOfUniqueViews,
119 statisticsView2.getExpressionViews().length);
120 }
121
122 public void testComparator() throws Exception {
123
124 final Comparator<ExpressionView> comparator =
125 new StatisticsView.CreationOrderComparator();
126
127 assertEquals(0, comparator.compare(m_views[0], m_views[0]));
128 }
129 }