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,