package br.gov.al.saude.scs.core.domain;
import org.jmock.Expectations;
import org.jmock.integration.junit4.JMock;
import org.junit.Test;
import org.junit.runner.RunWith;
import br.gov.al.saude.framework.core.generic.GenericRepository;
import br.gov.al.saude.framework.core.generic.GenericService;
import br.gov.al.saude.framework.core.validador.Validador;
import br.gov.al.saude.scs.core.domain.frequencia.FrequenciaService;
import br.gov.al.saude.scs.core.domain.frequencia.impl.FrequenciaServiceImpl;
import br.gov.al.saude.scs.core.infrastructure.persistence.jpa.frequencia.FrequenciaRepository;
import br.gov.al.saude.scs.model.Frequencia;
import br.gov.al.saude.scs.parametros.ParametrosConsultarFrequencia;
import br.gov.al.saude.test.builder.FrequenciaBuilder;
import br.gov.al.saude.test.unidade.generic.service.ServiceImplTest;
@RunWith
(JMock.
class)
public class FrequenciaServiceImplTest
extends ServiceImplTest
<Frequencia
> {
private FrequenciaService frequenciaService
;
private FrequenciaRepository frequenciaRepositoryMock
;
@
Override
public void inicializarContexto
() {
validadorMock = getContexto
().
mock(Validador.
class);
frequenciaRepositoryMock = getContexto
().
mock(FrequenciaRepository.
class);
frequenciaService =
new FrequenciaServiceImpl
(validadorMock, frequenciaRepositoryMock
);
setEntidade
(new FrequenciaBuilder
().
comSequencial("1").
build());
}
@Test
public void aoConsultarFrequenciaDtoDeveriaDelegarParaOhRepositorio
(){
getContexto
().
checking(new Expectations
(){{
oneOf
(frequenciaRepositoryMock
).
consultarFrequenciaDTO(with
(any
(ParametrosConsultarFrequencia.
class)));
}});
frequenciaService.
consultarFrequenciaDTO(new ParametrosConsultarFrequencia
());
}
@Test
public void aoObterQuantidadeRegistrosConsultarFrequenciaDtoDeveriaDelegarParaOhRepositorio
(){
getContexto
().
checking(new Expectations
(){{
oneOf
(frequenciaRepositoryMock
).
obterQuantidadeRegistrosConsultarFrequenciaDTO(with
(any
(ParametrosConsultarFrequencia.
class)));
}});
frequenciaService.
obterQuantidadeRegistrosConsultarFrequenciaDTO(new ParametrosConsultarFrequencia
());
}
@Test
public void aoDetalharFrequenciaDeveriaDelegarParaOhRepositorio
(){
getContexto
().
checking(new Expectations
(){{
oneOf
(frequenciaRepositoryMock
).
consultarPorId(with
(getEntidade
()));
will
(returnValue
(with
(same
(getEntidade
()))));
}});
frequenciaService.
detalharFrequencia(new Long("1"));
}
@Test
public void aoValidarFrequenciaDeveriaDelegarParaOhRepositorio
(){
getContexto
().
checking(new Expectations
(){{
oneOf
(frequenciaRepositoryMock
).
validarFrequencia(with
(any
(Long.
class)));
}});
frequenciaService.
validarFrequencia(new Long("1"));
}
@
Override
protected GenericService
<Frequencia
> getService
() {
return frequenciaService
;
}
@
Override
protected GenericRepository
<Frequencia
> getRepositoryMock
() {
return frequenciaRepositoryMock
;
}
}