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.plugin.http;
23
24 import net.grinder.testutility.RandomStubFactory;
25 import net.grinder.util.Sleeper;
26 import HTTPClient.HTTPConnection.BandwidthLimiter;
27 import junit.framework.TestCase;
28
29
30
31
32
33
34
35 public class TestSlowClientBandwidthLimiterFactory extends TestCase {
36
37 public void testFactory() throws Exception {
38 final SlowClientBandwidthLimiterFactory slowClientBandwidthLimiterFactory =
39 new SlowClientBandwidthLimiterFactory(null, 1000);
40
41 final BandwidthLimiter slowClientBandwidthLimiter =
42 slowClientBandwidthLimiterFactory.create();
43
44 assertNotNull(slowClientBandwidthLimiter);
45 assertNotSame(slowClientBandwidthLimiter,
46 slowClientBandwidthLimiterFactory.create());
47 }
48
49 public void testSlowClientBandwidthLimiter() throws Exception {
50 final RandomStubFactory<Sleeper> sleeperStubFactory =
51 RandomStubFactory.create(Sleeper.class);
52 final SlowClientBandwidthLimiterFactory slowClientBandwidthLimiterFactory =
53 new SlowClientBandwidthLimiterFactory(sleeperStubFactory.getStub(), 1000);
54
55 final BandwidthLimiter slowClientBandwidthLimiter =
56 slowClientBandwidthLimiterFactory.create();
57
58 sleeperStubFactory.setResult("getTimeInMilliseconds", new Long(10000));
59
60 assertEquals(100, slowClientBandwidthLimiter.maximumBytes(0));
61 sleeperStubFactory.assertSuccess("getTimeInMilliseconds");
62 sleeperStubFactory.assertSuccess("sleepNormal", new Long(0), new Long(0));
63 sleeperStubFactory.assertNoMoreCalls();
64
65 sleeperStubFactory.setResult("getTimeInMilliseconds", new Long(10010));
66 assertEquals(100, slowClientBandwidthLimiter.maximumBytes(100));
67 sleeperStubFactory.assertSuccess("getTimeInMilliseconds");
68 sleeperStubFactory.assertSuccess(
69 "sleepNormal", new Long(1580), new Long(0));
70 sleeperStubFactory.assertNoMoreCalls();
71
72 sleeperStubFactory.setResult("getTimeInMilliseconds", new Long(12000));
73 assertEquals(100, slowClientBandwidthLimiter.maximumBytes(200));
74 sleeperStubFactory.assertSuccess("getTimeInMilliseconds");
75 sleeperStubFactory.assertSuccess(
76 "sleepNormal", new Long(1380), new Long(0));
77 sleeperStubFactory.assertNoMoreCalls();
78
79 sleeperStubFactory.setResult("getTimeInMilliseconds", new Long(20000));
80 assertEquals(100, slowClientBandwidthLimiter.maximumBytes(200));
81 sleeperStubFactory.assertSuccess("getTimeInMilliseconds");
82 sleeperStubFactory.assertSuccess("sleepNormal", new Long(0), new Long(0));
83 sleeperStubFactory.assertNoMoreCalls();
84 }
85 }