1
2
3
4
5
6
7
8 package tempcontroller.base;
9
10 import java.util.Iterator;
11 import junit.framework.*;
12 import java.io.File;
13 import java.io.IOException;
14 import tempcontroller.dummy.ControladorTemperatura;
15 import tempcontroller.dummy.LeitorEspectro;
16
17
18
19
20
21 public class ControladorAmostragemTest extends TestCase {
22
23 public ControladorAmostragemTest(String testName) {
24 super(testName);
25 }
26
27 private IControladorAmostragem controladorAmostragem;
28 private ControladorTemperatura controladorTemperatura;
29 private LeitorEspectro leitorEspectro;
30 private TestTimer timer;
31
32 protected void setUp() throws Exception {
33 controladorAmostragem = new ControladorAmostragem();
34 controladorTemperatura = new ControladorTemperatura();
35 leitorEspectro = new LeitorEspectro();
36 timer = new TestTimer();
37 }
38
39 protected void tearDown() throws Exception {
40 controladorAmostragem = null;
41 controladorTemperatura = null;
42 leitorEspectro = null;
43 timer = null;
44 }
45
46 public void testLoadAndSave() throws IOException, ClassNotFoundException {
47
48
49 File f = null;
50 File f2 = null;
51 try {
52 f = File.createTempFile("tst", ".tmp");
53 controladorAmostragem.gravaProgramacao(getProgramacao(), f);
54 f2 = File.createTempFile("tst2", ".tmp");
55 f2.delete();
56 f.renameTo(f2);
57 IProgramacaoAmostragem prog = controladorAmostragem.carregaProgramacao(f2);
58 assertEquals(getProgramacao(), prog);
59 } finally {
60 if (f != null) {
61 f.delete();
62 }
63 if (f2 != null) {
64 f2.delete();
65 }
66 }
67 }
68
69 public void testAceita() {
70 controladorTemperatura.setAceita(false);
71 TestTimer timer = new TestTimer();
72 assertFalse(controladorAmostragem.aceita(getProgramacao(), controladorTemperatura, leitorEspectro, timer));
73 controladorTemperatura.setAceita(true);
74 assertTrue(controladorAmostragem.aceita(getProgramacao(), controladorTemperatura, leitorEspectro, timer));
75 }
76
77 private IProgramacaoAmostragem programacao;
78 private IProgramacaoAmostragem getProgramacao() {
79 if(programacao == null) {
80 programacao = new ProgramacaoAmostragemSimples();
81 programacao.setDiretorioGravacao(new File(System.getProperty("java.io.tmpdir")));
82
83 IAmostragem amostragem = new AmostragemSimples();
84 amostragem.setNome("Amostra 1");
85 amostragem.setDuracao(10 * 1000);
86 amostragem.setTemperatura(25.0);
87 programacao.addAmostragem(amostragem);
88
89 amostragem = new AmostragemSimples();
90 amostragem.setNome("Amostra 2");
91 amostragem.setDuracao(3600 * 1000);
92 amostragem.setTemperatura(250.0);
93 programacao.addAmostragem(amostragem);
94
95 amostragem = new AmostragemSimples();
96 amostragem.setNome("Amostra 3");
97 amostragem.setDuracao(48 * 3600 * 1000);
98 amostragem.setTemperatura(32.0);
99 programacao.addAmostragem(amostragem);
100 }
101
102 return programacao;
103 }
104 public void testControleTempo() {
105 controladorTemperatura.setAceita(true);
106 assertTrue(controladorAmostragem.aceita(getProgramacao(), controladorTemperatura, leitorEspectro, timer));
107 Iterator<IAmostragem> iterator = getProgramacao().getAmostragens().iterator();
108 IAmostragem amostragem;
109 controladorAmostragem.start();
110
111 while(iterator.hasNext()) {
112 timer.setCurrentTime(0);
113 amostragem = iterator.next();
114 controladorTemperatura.setTemperatura(amostragem.getTemperatura());
115 controladorTemperatura.fireTemperaturaAlvoAlcancada();
116 assertEquals(amostragem.getNome(), controladorAmostragem.getStatus().getNomeAmostragemAtual());
117 timer.setCurrentTime(amostragem.getDuracao());
118 timer.fireTempoTotalTerminado();
119 }
120
121 assertEquals(IControladorAmostragem.Estado.PROGRAMACAO_TERMINADA, controladorAmostragem.getStatus().getEstado());
122 }
123
124 public void testControleTemperatura() {
125 controladorTemperatura.setAceita(true);
126 assertTrue(controladorAmostragem.aceita(getProgramacao(), controladorTemperatura, leitorEspectro, timer));
127 Iterator<IAmostragem> iterator = getProgramacao().getAmostragens().iterator();
128 IAmostragem amostragem;
129 controladorAmostragem.start();
130
131 while(iterator.hasNext()) {
132 timer.setCurrentTime(0);
133 amostragem = iterator.next();
134 controladorTemperatura.setTemperatura(amostragem.getTemperatura());
135 controladorTemperatura.fireTemperaturaAlvoAlcancada();
136 controladorTemperatura.setTemperatura(amostragem.getTemperatura() + 10.0);
137 controladorTemperatura.fireMudancaTemperatura();
138 assertEquals(amostragem.getNome(), controladorAmostragem.getStatus().getNomeAmostragemAtual());
139 assertEquals(IControladorAmostragem.Estado.ESPERANDO_RETORNO_TEMPERATURA, controladorAmostragem.getStatus().getEstado());
140 controladorTemperatura.setTemperatura(amostragem.getTemperatura());
141 controladorTemperatura.fireTemperaturaAlvoAlcancada();
142 timer.setCurrentTime(amostragem.getDuracao());
143 timer.fireTempoTotalTerminado();
144 }
145
146 assertEquals(IControladorAmostragem.Estado.PROGRAMACAO_TERMINADA, controladorAmostragem.getStatus().getEstado());
147 }
148
149 public static void main(String[] args) {
150 ControladorAmostragemTest tst = new ControladorAmostragemTest("tst");
151 try {
152 tst.setUp();
153 tst.testControleTempo();
154 tst.tearDown();
155 } catch (Exception ex) {
156 ex.printStackTrace();
157 }
158 }
159 }