US3006 - ArthurSchiavom/gestao-informacao-chao-de-fabrica--projeto-academico GitHub Wiki
Como Gestor de Chão de Fábrica, eu pretendo arquivar uma ou mais notificações de erros de processamento.
Service Foi utilizado um service para efetuar o arquivamento de uma notificação
Teste 1: Garantir que não se pode arquivar notificações que já estão arquivadas
@Test
public void garantirQueNaoSePodeArquivarNotificacoesArquivadas() {
Mockito.when(lProdRepo.containsOfIdentity(idDummy)).thenReturn(true);
Mockito.when(msgRepo.containsOfIdentity(2L)).thenReturn(true);
NotificacaoErro notifErro = new NotificacaoErro(idDummy, TipoErroNotificacao.DADOS_INVALIDOS, 2L,
lProdRepo, msgRepo);
assertTrue(notifErro.arquivar()); //Primeira arquivamento funciona porque uma notificação começa sempre ativa
assertFalse(notifErro.arquivar()); //Segunda deve falhar porque já foi arquivada
}Teste 2: Garantir que o estado da notificação fica como arquivado
@Test
public void garantirQueOEstadoFicaArquivado() {
Mockito.when(lProdRepo.containsOfIdentity(idDummy)).thenReturn(true);
Mockito.when(msgRepo.containsOfIdentity(2L)).thenReturn(true);
NotificacaoErro notifErro = new NotificacaoErro(idDummy, TipoErroNotificacao.DADOS_INVALIDOS, 2L,
lProdRepo, msgRepo);
notifErro.arquivar();
assertTrue(notifErro.isArquivado());
}Teste 1: Garantir que o id da notificação não pode ser null
@Test(expected = IllegalArgumentException.class)
public void garantirQueIdNaoPodeSerNull() {
servico.arquivar(null);
}Teste 2: Garantir que o id da notificação existe na base de dados
@Test(expected = IllegalArgumentException.class)
public void garantirQueIdExisteNaBaseDeDados() {
Mockito.when(repo.ofIdentity(2L)).thenReturn(null);
servico.arquivar(2L);
}Teste 3: Garantir que não se pode arquivar uma notificação que já foi arquivada
@Test(expected = IllegalArgumentException.class)
public void garantirQueNaoSePodeArquivarNotificacaoArquivada() {
Mockito.when(lProdRepo.containsOfIdentity(idDummy)).thenReturn(true);
Mockito.when(msgRepo.containsOfIdentity(2L)).thenReturn(true);
NotificacaoErro notifErro = new NotificacaoErro(idDummy, TipoErroNotificacao.DADOS_INVALIDOS, 2L,
lProdRepo, msgRepo);
notifErro.arquivar();
Mockito.when(repo.ofIdentity(2L)).thenReturn(Optional.of(notifErro));
servico.arquivar(2L);
}*Teste 4: Garantir que a notificação fica marcada como estando arquivada
@Test
public void garantirQueNotificacaoFicaArquivada() {
Mockito.when(lProdRepo.containsOfIdentity(idDummy)).thenReturn(true);
Mockito.when(msgRepo.containsOfIdentity(2L)).thenReturn(true);
NotificacaoErro notifErro = new NotificacaoErro(idDummy, TipoErroNotificacao.DADOS_INVALIDOS, 2L,
lProdRepo, msgRepo);
Mockito.when(repo.ofIdentity(2L)).thenReturn(Optional.of(notifErro));
Mockito.when(repo.save(notifErro)).thenReturn(notifErro);
NotificacaoErro arquivada = servico.arquivar(2L);
assertTrue(notifErro.isArquivado());
}n/a
n/a