US3009 - ArthurSchiavom/gestao-informacao-chao-de-fabrica--projeto-academico GitHub Wiki
Como Gestor de Chão de Fábrica, eu pretendo saber e alterar o estado (ativo/desativo) do processamento de mensagens de cada linha de produção bem como conhecer a última vez que o mesmo se realizou.
DTO Para apresentar elementos de dominio no UI
Todos os essenciais: SOLID, GRASP
@Test
public void garantirQueNaoSePodeAlterarEstadosDeProcessamentoParaOEstadoAtual() {
LinhaProducao lProd = new LinhaProducao("teste");
assertFalse(lProd.podeMudarParaEstado(EstadoProcessamentoMensagens.SUSPENSO));
}@Test
public void garantirQueSePodeMudarOEstadoParaUmEstadoDiferente() {
LinhaProducao lProd = new LinhaProducao("teste");
assertTrue(lProd.alterarEstado(EstadoProcessamentoMensagens.ATIVO));
}@Test
public void garantirQueNaoSePodeAlterarEstadosDeProcessamentoParaOEstadoAtualQuandoEleEstaAtivo() {
LinhaProducao lProd = new LinhaProducao("teste");
lProd.alterarEstado(EstadoProcessamentoMensagens.ATIVO);
assertFalse(lProd.podeMudarParaEstado(EstadoProcessamentoMensagens.ATIVO));
}@Test
public void garantirQueAUltimaAtualizacaoDaDataFicaAlteradaQuandoOEstadoEAlterado() {
LinhaProducao lProd = new LinhaProducao("teste");
String firstData = lProd.obterUltimaVezAtualizado();
try {
Thread.sleep(1010);
} catch (InterruptedException e) {
e.printStackTrace();
fail("sleeping for one second failed somehow");
}
lProd.alterarEstado(EstadoProcessamentoMensagens.ATIVO);
String secondData = lProd.obterUltimaVezAtualizado();
assertNotEquals(firstData, secondData);
}n/a
n/a