1 | 0 | package br.mia.test.view.swingworker; |
2 | |
|
3 | |
import java.util.ArrayList; |
4 | |
import java.util.List; |
5 | |
|
6 | |
import javax.swing.JLabel; |
7 | |
import javax.swing.JProgressBar; |
8 | |
|
9 | |
import org.jdesktop.swingworker.SwingWorker; |
10 | |
|
11 | |
import br.mia.test.controler.ControladorErro; |
12 | |
import br.mia.test.model.CasoUso; |
13 | |
import br.mia.test.model.Fluxo; |
14 | |
import br.mia.test.model.Projeto; |
15 | |
import br.mia.test.model.algoritmo.Algoritmo; |
16 | |
import br.mia.test.model.dao.DAOCenario; |
17 | |
import br.mia.test.model.dao.DAOFlow; |
18 | |
import br.mia.test.testcase.CasosTeste; |
19 | |
import br.mia.test.util.GeraExcel; |
20 | |
import br.mia.test.util.Util; |
21 | |
import br.mia.test.view.Global; |
22 | |
import br.mia.test.view.TelaCasosTeste; |
23 | |
import br.mia.test.view.observers.ObserverUseCase; |
24 | |
import br.mia.test.view.progress.ProgressView; |
25 | |
|
26 | 0 | public class CreateScenario extends SwingWorker<ArrayList<CasosTeste>, Object> |
27 | 0 | { |
28 | |
|
29 | |
private CasoUso useCase; |
30 | |
|
31 | |
private Projeto projeto; |
32 | |
|
33 | |
public Projeto getProjeto() { |
34 | 0 | return projeto; |
35 | 0 | } |
36 | |
|
37 | |
public void setProjeto(Projeto projeto) { |
38 | 0 | this.projeto = projeto; |
39 | 0 | } |
40 | 0 | |
41 | |
private ObserverUseCase frame; |
42 | |
|
43 | |
public CasoUso getUseCase() { |
44 | 0 | return useCase; |
45 | 0 | } |
46 | |
|
47 | |
public void setUseCase(CasoUso useCase) { |
48 | 0 | this.useCase = useCase; |
49 | 0 | } |
50 | 0 | |
51 | |
public ObserverUseCase getFrame() { |
52 | 0 | return frame; |
53 | 0 | } |
54 | |
|
55 | |
public void setFrame(ObserverUseCase frame) { |
56 | 0 | this.frame = frame; |
57 | 0 | } |
58 | 0 | |
59 | |
@Override |
60 | |
protected ArrayList<CasosTeste> doInBackground() throws Exception { |
61 | |
|
62 | 0 | ProgressView progress = new ProgressView(); |
63 | 0 | |
64 | 0 | ArrayList<CasosTeste> casosTestes = new ArrayList<CasosTeste>(); |
65 | 0 | |
66 | 0 | DAOFlow daoFlow = new DAOFlow(); |
67 | 0 | |
68 | 0 | daoFlow.updateStepsAtualizado(useCase); |
69 | 0 | |
70 | 0 | Algoritmo alg = new Algoritmo(); |
71 | 0 | alg.limpaArvore(useCase); |
72 | 0 | alg.retornaCenarios((Fluxo) useCase.getFlows().get(0), 0, |
73 | 0 | new CasosTeste(), 0, useCase); |
74 | 0 | ArrayList<CasosTeste> cenarios = alg.getCasosDeTeste(); |
75 | 0 | |
76 | 0 | Global global = new Global(); |
77 | 0 | |
78 | 0 | DAOCenario dao = new DAOCenario(); |
79 | 0 | JProgressBar createTestCaseDate = new JProgressBar(0, cenarios.size()); |
80 | 0 | |
81 | 0 | progress.getContentPane().add(new JLabel("Aplicando Dados de Teste"), |
82 | 0 | global.getLayout2()); |
83 | 0 | progress.getContentPane().add(createTestCaseDate, global.getLayout3()); |
84 | 0 | progress.pack(); |
85 | 0 | |
86 | 0 | int posicao = 1; |
87 | 0 | |
88 | 0 | for (Object object : cenarios) { |
89 | 0 | |
90 | 0 | createTestCaseDate.setValue(posicao++); |
91 | 0 | |
92 | 0 | CasosTeste casoTeste = (CasosTeste) object; |
93 | 0 | try { |
94 | 0 | CasosTeste novoTeste = new CasosTeste(); |
95 | 0 | novoTeste.getFlows().addAll(casoTeste.getFlows()); |
96 | 0 | alg.applyData(casoTeste, 0, novoTeste, useCase, true); |
97 | 0 | |
98 | 0 | } catch (Exception e1) { |
99 | 0 | ControladorErro.trata(e1, this); |
100 | 0 | } |
101 | |
|
102 | |
} |
103 | 0 | int i = 0; |
104 | 0 | |
105 | 0 | posicao = 1; |
106 | 0 | |
107 | 0 | JProgressBar createTestCase = new JProgressBar(0, alg |
108 | 0 | .getCasosDeTesteData().size()); |
109 | 0 | progress.getContentPane().add(new JLabel("Criando Casos de Teste"), |
110 | 0 | global.getLayout2()); |
111 | 0 | progress.getContentPane().add(createTestCase); |
112 | 0 | progress.pack(); |
113 | 0 | |
114 | 0 | for (Object object : alg.getCasosDeTesteData()) { |
115 | 0 | |
116 | 0 | CasosTeste casoTeste = (CasosTeste) object; |
117 | 0 | |
118 | 0 | String descricao = ""; |
119 | 0 | |
120 | 0 | String duvidas = ""; |
121 | 0 | String ambiente = ""; |
122 | 0 | List<Fluxo> fluxos = casoTeste.getFlows(); |
123 | 0 | for (Object object1 : fluxos) { |
124 | 0 | |
125 | 0 | Fluxo flow = (Fluxo) object1; |
126 | 0 | String novoFluxo = flow.getName(); |
127 | 0 | String novaDuvida = flow.getDuvidas(); |
128 | 0 | String novoambiente = flow.getAmbiente(); |
129 | 0 | |
130 | 0 | if (!(descricao.contains(novoFluxo))) { |
131 | 0 | descricao += " " + novoFluxo; |
132 | 0 | } |
133 | 0 | if (novaDuvida == null) { |
134 | 0 | novaDuvida = ""; |
135 | 0 | } |
136 | 0 | if (novoambiente == null) { |
137 | 0 | novoambiente = ""; |
138 | 0 | } |
139 | 0 | if (!(duvidas.contains(novaDuvida))) { |
140 | 0 | duvidas += novaDuvida + "\n"; |
141 | 0 | } |
142 | 0 | if (!(ambiente.contains(novoambiente))) { |
143 | 0 | ambiente += novoambiente + "\n"; |
144 | 0 | } |
145 | |
|
146 | |
} |
147 | |
|
148 | 0 | casoTeste.setDescricao(descricao); |
149 | 0 | |
150 | 0 | if (duvidas.length() > 0) { |
151 | 0 | duvidas = "As seguintes ped�ncias foram encontradas :\n" |
152 | 0 | + duvidas; |
153 | 0 | } |
154 | |
|
155 | 0 | if (duvidas.length() > 1440) { |
156 | 0 | casoTeste.setDuvidas(duvidas.substring(0, 440)); |
157 | 0 | } else { |
158 | 0 | casoTeste.setDuvidas(duvidas); |
159 | 0 | } |
160 | |
|
161 | 0 | if (ambiente.length() > 0) { |
162 | 0 | ambiente = "Ambiente de Teste :\n\n" + ambiente; |
163 | 0 | } |
164 | |
|
165 | 0 | if (ambiente.length() > 1440) { |
166 | 0 | casoTeste.setAmbiente(ambiente.substring(0, 440)); |
167 | 0 | } else { |
168 | 0 | casoTeste.setAmbiente(ambiente); |
169 | 0 | } |
170 | |
|
171 | 0 | String nome = Util.getTestCaseName(useCase, i, casoTeste); |
172 | 0 | |
173 | 0 | casoTeste.setNome(nome); |
174 | 0 | |
175 | 0 | createTestCase.setValue(posicao++); |
176 | 0 | try { |
177 | 0 | Thread.sleep(2000); |
178 | 0 | } catch (InterruptedException e) { |
179 | 0 | |
180 | 0 | e.printStackTrace(); |
181 | 0 | } |
182 | 0 | casosTestes.add(casoTeste); |
183 | 0 | i++; |
184 | 0 | |
185 | |
} |
186 | |
|
187 | 0 | GeraExcel.geraExcel(alg.getCasosDeTesteData(), useCase); |
188 | 0 | |
189 | 0 | progress.getContentPane().add(new JLabel("Atualizando Tela"), |
190 | 0 | global.getLayout2()); |
191 | 0 | |
192 | 0 | TelaCasosTeste pane = (TelaCasosTeste) frame.getInternalFrames().get(0); |
193 | 0 | |
194 | 0 | pane.recarregaCasosTeste(); |
195 | 0 | pane.getTcase().revalidate(); |
196 | 0 | pane.pack(); |
197 | 0 | |
198 | 0 | progress.setVisible(false); |
199 | 0 | |
200 | 0 | return casosTestes; |
201 | 0 | |
202 | |
} |
203 | |
|
204 | |
} |