package br.com.ufrj.msi2.netuno.modelo;
import javax.persistence.EntityTransaction;
import org.junit.Test;
import br.com.ufrj.msi2.netuno.modelo.entidades.CPF;
import br.com.ufrj.msi2.netuno.modelo.entidades.Contratante;
import br.com.ufrj.msi2.netuno.modelo.exceptions.ValidacaoException;
import br.com.ufrj.msi2.netuno.modelo.servicos.ContratanteServiceImpl;
import br.com.ufrj.msi2.netuno.modelo.support.BeanFinder;
import com.bm.testsuite.BaseSessionBeanFixture;
public class ContratanteServiceImplTest extends BaseSessionBeanFixture<ContratanteServiceImpl> {
private static final Class<?>[] usedBeans = BeanFinder.findBeans(BeanFinder.NETUNO_MODEL_PACKAGE);
public ContratanteServiceImplTest() {
super(ContratanteServiceImpl.class, usedBeans);
}
public void testDependencyInjection() {
final ContratanteServiceImpl service = this.getBeanToTest();
assertNotNull(service);
assertNotNull(service.getEm());
}
/**
* Verifica se o m�todo criarContratante cria um novo contratante, que tem que ter id nulo.
*/
@Test
public void testCriarContratante() {
ContratanteServiceImpl service = this.getBeanToTest();
Contratante contratante = service.criarContratante();
assertNotNull(contratante);
assertNull(contratante.getId());
}
/**
* Salvar contratante novo. Contratante deve ser inserido.
*/
@Test
public void testSalvarContratanteSucesso() {
ContratanteServiceImpl service = this.getBeanToTest();
Contratante contratante = service.criarContratante();
CPF cpf = new CPF();
contratante.setLogin("login");
contratante.setSenha("senha");
contratante.setNome("Jo�o");
contratante.setEmail("a@b.com");
cpf.setCpf("12345678910");
contratante.setCpf(cpf);
ValidacaoException exception = null;
EntityTransaction tx = this.getEntityManager().getTransaction();
tx.begin();
try {
service.salvarContratante(contratante);
tx.commit();
} catch (ValidacaoException e) {
exception = e;
if(tx.isActive()) {
tx.rollback();
}
}
assertNull(exception);
}
/**
* Salvar contratante novo sem nome. Contratante n�o deve ser inserido.
*/
@Test
public void testSalvarContratanteSemNome() {
ContratanteServiceImpl service = this.getBeanToTest();
Contratante contratante = service.criarContratante();
contratante.setLogin(null);
ValidacaoException exception = null;
try {
service.salvarContratante(contratante);
} catch (ValidacaoException e) {
exception = e;
}
assertNotNull(exception);
}
/**
* Salvar contratante novo com senha composta somente de espa�os em branco. Contratante n�o deve ser inserido.
*/
@Test
public void testSalvarContratanteSenhaEmBranco() {
ContratanteServiceImpl service = this.getBeanToTest();
Contratante contratante = service.criarContratante();
contratante.setLogin("login2");
contratante.setSenha(" ");
ValidacaoException exception = null;
try {
service.salvarContratante(contratante);
} catch (ValidacaoException e) {
exception = e;
}
assertNotNull(exception);
}
/**
* Recuperar contratante com seus contratos.
*/
@Test
public void testRecuperarPorIdComContratos() {
ContratanteServiceImpl service = this.getBeanToTest();
Contratante contratante = service.recuperaPorIdComContratos(new Integer(1));
System.out.println(contratante.getNome());
System.out.println(contratante.getContratos());
assertNotNull(contratante);
assertNotNull(contratante.getContratos());
}
}