1
2
3
4
5
6
7
8 package tempcontroller.base;
9
10 import java.util.HashSet;
11 import java.util.Random;
12 import java.util.Set;
13 import junit.framework.*;
14
15
16
17
18
19 public class TstAbstractTimerTest extends TestCase implements IOuvinteTimer {
20 TestTimer timer;
21 Random random;
22
23 private int tickCounter;
24 private int tempoTotalCounter;
25
26 public TstAbstractTimerTest(String testName) {
27 super(testName);
28 }
29
30 protected void setUp() throws Exception {
31 timer = new TestTimer();
32 random = new Random();
33 }
34
35 protected void tearDown() throws Exception {
36 }
37
38
39
40
41 public void testSetTempoTotal() {
42 long tempoTotalLocal = 0L;
43 for(int i = 0; i < 10; i++) {
44 tempoTotalLocal = random.nextLong();
45 timer.metodosChamados.remove(TestTimer.SET_TEMPO_TOTAL_IMPL);
46 timer.setTempoTotal(tempoTotalLocal);
47 assertEquals(tempoTotalLocal, timer.getTempoTotal());
48 assertTrue(timer.metodosChamados.contains(TestTimer.SET_TEMPO_TOTAL_IMPL));
49 }
50 }
51
52
53
54
55 public void testSetTick() {
56 long tickLocal = 0L;
57 for(int i = 0; i < 10; i++) {
58 tickLocal = random.nextLong();
59 timer.metodosChamados.remove(TestTimer.SET_TICK_IMPL);
60 timer.setTick(tickLocal);
61 assertEquals(tickLocal, timer.getTick());
62 assertTrue(timer.metodosChamados.contains(TestTimer.SET_TICK_IMPL));
63 }
64 }
65
66
67
68
69 public void testAddOuvinteTimer() {
70 tickCounter=0;
71 tempoTotalCounter=0;
72 timer.removeOuvinteTimer(this);
73 timer.addOuvinteTimer(this);
74 timer.fireTickDoTimer();
75 timer.fireTickDoTimer();
76 timer.fireTempoTotalTerminado();
77 timer.fireTempoTotalTerminado();
78 assertEquals(2, tickCounter);
79 assertEquals(2, tempoTotalCounter);
80 }
81
82
83
84
85 public void testRemoveOuvinteTimer() {
86 tickCounter=0;
87 tempoTotalCounter=0;
88 timer.addOuvinteTimer(this);
89 timer.removeOuvinteTimer(this);
90 timer.fireTickDoTimer();
91 timer.fireTickDoTimer();
92 timer.fireTempoTotalTerminado();
93 timer.fireTempoTotalTerminado();
94 assertEquals(0, tickCounter);
95 assertEquals(0, tempoTotalCounter);
96 }
97
98
99
100
101 public void testStart() {
102 timer.setCurrentTime(0);
103 timer.stop();
104 assertEquals(ITimer.Estado.NAO_INICIADO, timer.getEstado());
105 timer.metodosChamados.remove(TestTimer.START_IMPL);
106 timer.start();
107 assertTrue(timer.metodosChamados.contains(TestTimer.START_IMPL));
108 assertEquals(0, timer.getTempoDecorrido());
109 assertEquals(ITimer.Estado.CRONOMETRANDO, timer.getEstado());
110 timer.setCurrentTime(100);
111 assertEquals(100, timer.getTempoDecorrido());
112 timer.metodosChamados.remove(TestTimer.PAUSE_IMPL);
113 timer.pause();
114 assertTrue(timer.metodosChamados.contains(TestTimer.PAUSE_IMPL));
115 assertEquals(ITimer.Estado.PAUSADO, timer.getEstado());
116 timer.setCurrentTime(200);
117 assertEquals(100, timer.getTempoDecorrido());
118 timer.metodosChamados.remove(TestTimer.CONTINUA_IMPL);
119 timer.continua();
120 assertTrue(timer.metodosChamados.contains(TestTimer.CONTINUA_IMPL));
121 assertEquals(ITimer.Estado.CRONOMETRANDO, timer.getEstado());
122 timer.setCurrentTime(300);
123 assertEquals(200, timer.getTempoDecorrido());
124 timer.metodosChamados.remove(TestTimer.STOP_IMPL);
125 timer.stop();
126 assertTrue(timer.metodosChamados.contains(TestTimer.STOP_IMPL));
127 assertEquals(200, timer.getTempoDecorrido());
128 assertEquals(ITimer.Estado.NAO_INICIADO, timer.getEstado());
129 }
130
131 public void tickDoTimer() {
132 tickCounter++;
133 }
134
135 public void tempoTotalTerminado() {
136 tempoTotalCounter++;
137 }
138 }