Galera, estou tendo um erro aqui num teste unitário que não tou entendendo por que … vou mandar pra vocês todo o código relacionado e a mensagem de erro que recebo no teste unitário.
Esse primeiro método verifica se o nome de usuário já existe no banco de dados.
protected boolean verificaNomeUsuario(String nomeUs) {
conectar();
try {
java.sql.Statement st = con.createStatement();
String SQL = "SELECT nomeusuario FROM caronista WHERE nomeusuario = " + "'"+nomeUs+"'";
ResultSet rs = st.executeQuery(SQL);
rs.next();
String nome = rs.getString("nomeusuario");
if ( ! nomeUs.equals(nome))return true;
else return false;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
Este aqui é o teste que estou tentando fazer.
/**
* Cria um caronista com todos os valores válidos, insere no Banco de Dados
* Depois, busca o caronista inserido pelo cpf.
* Se retornar exatamente o mesmo objeto o teste foi realizado com sucesso
*/
public void testCreateCaronistaPerfeito() throws Exception {
System.out.println("createCaronista");
Caronista c = new Caronista();
c.setCampusOrigem("uruguaiana");
c.setCpf("14236867133");
c.setDataNascimento("12/10/1990");
c.setEmail("email@exemplo.com");
c.setMatricula("89281");
c.setNomeCompleto("Carlos Eduardo");
c.setNomeUsuario("carloseduardo");
c.setSenha("Senha@Test123");
AuxCaronista instance = new AuxCaronista();
instance.createCaronista(c);
Caronista compara = instance.retornaCaronista("14236867133");
assertEquals(compara, c);
}
O erro que me retorna é que sempre ja há um usuário com esse nome, por mais que não haja, inclusive já fiz milhares de consultas no banco e tenho certeza que não tem nada lá. Por via das duvidas, enviarei a classe de adição de caronista no BD e de busca tbm.
Esse aqui é o que adiciona.
public boolean insertCaronista(Caronista c) {
try {
Connection con = confac.criaConexao();
AdicionaPessoa = con.prepareStatement("INSERT INTO caronista "
+ "( nomecompleto , nomeusuario , senha , email , cpf , matricula , "
+ " campusorigem , datanascimento ) " + "VALUES ( ?, ?, ?, ?, ?, ?, ?, ? )");
AdicionaPessoa.setString(1, c.getNomeCompleto());
AdicionaPessoa.setString(2, c.getNomeUsuario());
AdicionaPessoa.setString(3, c.getSenha());
AdicionaPessoa.setString(4, c.getEmail());
AdicionaPessoa.setString(5, c.getCpf());
AdicionaPessoa.setString(6, c.getMatricula());
AdicionaPessoa.setString(7, c.getCampusOrigem());
AdicionaPessoa.setDate(8, converteData(c.getDataNascimento()));
result = AdicionaPessoa.executeUpdate();
if (result == 0) {
System.out.println("não alterou nada");
}
} catch (Exception e) {
e.printStackTrace();
return false;
}
return true;
}
e este o que busca:
public Caronista returnCaronista(String cpf) throws ValoresIlegaisException {
try {
Caronista c = null;
Connection con = confac.criaConexao();
String SQL = "SELECT * FROM caronista WHERE cpf = " + cpf;
java.sql.Statement st = con.createStatement();
ResultSet rs = st.executeQuery(SQL);
c.setNomeCompleto(rs.getString("nomecompleto"));
c.setNomeUsuario(rs.getString("nomeusuario"));
c.setCampusOrigem(rs.getString("campusorigem"));
c.setDataNascimento(rs.getString("datanascimento"));
c.setEmail(rs.getString("email"));
c.setMatricula(rs.getString("matricula"));
c.setSenha(rs.getString("senha"));
c.setCpf(cpf);
return c;
} catch (SQLException ex) {
Logger.getLogger(DBCaronista.class.getName()).log(Level.SEVERE, null, ex);
return null;
}
}
Ps. estou entrando em desespero já x.x
Obrigado pela atenção.
Claudio.