Spring, JUnit test

0 respostas
Guilherme_Gomes

Pessoal tenho a interface EstadoService:

public interface EstadoService extends GenericDAO<Estado , Long>{
	// a GenericDAO obriga a criação dos métodos delete, save, update, find  e findAll
	public List<Estado> findByNome(String nome);
	
	public List<Estado> findBySigla(String sigla);
}

e a implementação

public class EstadoDAO extends JpaDaoSupport implements EstadoService{

	public void delete(Estado estado) {
		getJpaTemplate().remove(estado);
	}

	public Estado find(Long id) {
		return getJpaTemplate().find(Estado.class, id);
	}

	@SuppressWarnings("unchecked")
	public List<Estado> findAll() {
		return getJpaTemplate().find("select e from Estado e");
	}
         //...
}

Tenho a classe para fazer o JUnit test:
Ela é grande, mas não precisa ler inteira, é só pra mostrar mais ou menos o que faço

public class EstadoServiceIntegrationTests extends AbstractJpaTests {
	private EstadoDAO estadoservice;
	
	@SuppressWarnings("unused")
	private Long spId;

	public void setEstadoservice(EstadoDAO estadoservice) {
		this.estadoservice = estadoservice;
	}
	
	protected String[] getConfigLocations() {
		return new String[] { "classpath:/br/com/ze/locais/dao/dwspring-service.xml" };
	}
	
	protected void onSetUpInTransaction() throws Exception{
		Estado estado1 = new Estado();
		estado1.setNome("São Paulo");
		estado1.setSigla("SP");
		
		Estado estado2 = new Estado();
		estado2.setNome("Rio de Janeiro");
		estado2.setSigla("RJ");

		estadoservice.save(estado1);
		estadoservice.save(estado2);
		
		estado1.setNome("Sao Paulo");
		estado1 = estadoservice.update(estado1);
		
		spId = estado1.getId();
	}
	
	public void testModifyEstado(){
		String oldName = "Rio de Janeiro";
		String newName = "Riu de Janeiro";
		List<Estado> list = estadoservice.findByNome(oldName);
		Estado est = list.get(0);
		est.setNome(newName);
		
		System.out.println("Alo: " + est.getId() + est.getNome() + est.getSigla() + " " + list.size());
		
		Estado est2 = estadoservice.update(est);
		assertEquals(newName, est2.getNome());
		System.out.println("Nome : " + est2.getNome());
		
		Estado e = new Estado();
		e.setNome("Nome");
		e.setSigla("SG");
		estadoservice.save(e);
		System.out.println(e.getId());
		e.setNome("NNNN");
		estadoservice.update(e);
	}
}

Mas ao testar:

Alguem pode me ajudar?

Outra coisa, estou vendo Spring agora, alguem pode me informar como voces fazem para pegar as instancias das DAOs nas suas classes, sem que o getJpaTemplate, por exemplo, venha null…

Obrigado,

Criado 13 de dezembro de 2007
Respostas 0
Participantes 1