1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 package net.grinder.console.model;
23
24 import java.io.File;
25 import java.text.NumberFormat;
26 import java.util.Arrays;
27 import java.util.HashSet;
28 import java.util.Set;
29
30 import net.grinder.console.model.SampleModelViews.Listener;
31 import net.grinder.statistics.ExpressionView;
32 import net.grinder.statistics.StatisticsServices;
33 import net.grinder.statistics.StatisticsServicesImplementation;
34 import net.grinder.statistics.StatisticsView;
35 import net.grinder.statistics.TestStatisticsQueries;
36 import net.grinder.testutility.AbstractFileTestCase;
37 import net.grinder.testutility.RandomStubFactory;
38
39
40
41
42
43
44
45 public class TestSampleModelViewsImplementation extends AbstractFileTestCase {
46
47 private final RandomStubFactory<SampleModel> m_modelStubFactory =
48 RandomStubFactory.create(SampleModel.class);
49 private final SampleModel m_model = m_modelStubFactory.getStub();
50
51 private ConsoleProperties m_consoleProperties;
52
53 protected void setUp() throws Exception {
54 super.setUp();
55 m_consoleProperties =
56 new ConsoleProperties(null, new File(getDirectory(), "props"));
57 }
58
59 public void testConstruction() throws Exception {
60
61 final StatisticsServices statisticsServices =
62 StatisticsServicesImplementation.getInstance();
63
64 final Set<ExpressionView> standardSummaryExpressionViews =
65 new HashSet<ExpressionView>(Arrays.asList(
66 statisticsServices.getSummaryStatisticsView().getExpressionViews()));
67
68 final SampleModelViews sampleModelViews =
69 new SampleModelViewsImplementation(
70 m_consoleProperties,
71 statisticsServices,
72 m_model);
73
74 m_modelStubFactory.assertSuccess("getPeakTPSExpression");
75
76 final Set<ExpressionView> cumulativeViewSet =
77 expressionViewsSet(sampleModelViews.getCumulativeStatisticsView());
78
79 assertTrue(cumulativeViewSet.containsAll(standardSummaryExpressionViews));
80 assertFalse(standardSummaryExpressionViews.containsAll(cumulativeViewSet));
81
82 final Set<ExpressionView> intervalViewSet =
83 expressionViewsSet(sampleModelViews.getIntervalStatisticsView());
84
85 assertTrue(intervalViewSet.containsAll(standardSummaryExpressionViews));
86 assertTrue(cumulativeViewSet.containsAll(intervalViewSet));
87 assertFalse(intervalViewSet.containsAll(cumulativeViewSet));
88
89 final ExpressionView expressionView =
90 statisticsServices.getStatisticExpressionFactory().createExpressionView(
91 "My view", "userLong0", false);
92
93 assertFalse(cumulativeViewSet.contains(expressionView));
94
95 sampleModelViews.registerStatisticExpression(expressionView);
96
97 assertTrue(
98 expressionViewsSet(sampleModelViews.getCumulativeStatisticsView())
99 .contains(expressionView));
100
101 assertTrue(
102 expressionViewsSet(sampleModelViews.getIntervalStatisticsView())
103 .contains(expressionView));
104
105 sampleModelViews.resetStatisticsViews();
106
107 assertFalse(
108 expressionViewsSet(sampleModelViews.getCumulativeStatisticsView())
109 .contains(expressionView));
110
111 assertFalse(
112 expressionViewsSet(sampleModelViews.getIntervalStatisticsView())
113 .contains(expressionView));
114
115 final TestStatisticsQueries statisticsQueries =
116 sampleModelViews.getTestStatisticsQueries();
117 assertNotNull(statisticsQueries);
118 assertSame(statisticsQueries,
119 statisticsServices.getTestStatisticsQueries());
120
121 m_modelStubFactory.assertNoMoreCalls();
122 }
123
124 private HashSet<ExpressionView> expressionViewsSet(
125 StatisticsView statisticsView) {
126
127 return new HashSet<ExpressionView>(
128 Arrays.asList(statisticsView.getExpressionViews()));
129 }
130
131 public void testListeners() throws Exception {
132 final StatisticsServices statisticsServices =
133 StatisticsServicesImplementation.getInstance();
134
135 final SampleModelViews sampleModelViews =
136 new SampleModelViewsImplementation(
137 m_consoleProperties,
138 statisticsServices,
139 m_model);
140
141 final RandomStubFactory<Listener> listenerStubFactory =
142 RandomStubFactory.create(Listener.class);
143 sampleModelViews.addListener(listenerStubFactory.getStub());
144
145 sampleModelViews.resetStatisticsViews();
146 listenerStubFactory.assertSuccess("resetStatisticsViews");
147
148 final ExpressionView expressionView =
149 statisticsServices.getStatisticExpressionFactory().createExpressionView(
150 "My view", "userLong0", false);
151
152 sampleModelViews.registerStatisticExpression(expressionView);
153 listenerStubFactory.assertSuccess("newStatisticExpression", expressionView);
154
155 listenerStubFactory.assertNoMoreCalls();
156 }
157
158 public void testNumberFormat() throws Exception {
159
160 final SampleModelViews sampleModelViews =
161 new SampleModelViewsImplementation(
162 m_consoleProperties,
163 StatisticsServicesImplementation.getInstance(),
164 m_model);
165
166 final NumberFormat numberFormat = sampleModelViews.getNumberFormat();
167
168 assertNotNull(numberFormat);
169 assertSame(numberFormat, sampleModelViews.getNumberFormat());
170
171 assertEquals("1.23", numberFormat.format(1.234));
172
173 m_consoleProperties.setSignificantFigures(4);
174
175 final NumberFormat numberFormat4sf = sampleModelViews.getNumberFormat();
176 assertNotSame(numberFormat, numberFormat4sf);
177 assertEquals("1.234", numberFormat4sf.format(1.234));
178 }
179 }