package fil.iagl.iir.dao.utilisateur;
import org.fest.assertions.api.Assertions;
import org.junit.Test;
import org.springframework.dao.DataIntegrityViolationException;
import fil.iagl.iir.dao.AbstractDaoTest;
import fil.iagl.iir.entite.Utilisateur;
import fil.iagl.iir.outils.SQLCODE;
public class UtilisateurDaoTest extends AbstractDaoTest{
@Test
public void getByIdTestSucces() throws Exception {
Integer id = 1;
String nom = "toto";
String password = "tata";
String email = "toto.toto@gmail.com";
Utilisateur user = utilisateurDao.getById(id);
Assertions.assertThat(user.getId()).isNotNull().isPositive().isEqualTo(id);
Assertions.assertThat(user.getMail()).isNotNull().isEqualTo(email);
Assertions.assertThat(user.getNom()).isNotNull().isEqualTo(nom);
Assertions.assertThat(user.getPassword()).isNotNull().isEqualTo(password);
}
@Test
public void getByIdTestEchec() throws Exception {
Assertions.assertThat(utilisateurDao.getById(null)).isNull();
Assertions.assertThat(utilisateurDao.getById(Integer.MAX_VALUE)).isNull();
}
@Test
public void sauvegarderTestSucces() throws Exception {
Utilisateur utilisateur = new Utilisateur();
String nom = "monnom";
String password = "monpassword";
String mail = "monmail@mail.com";
utilisateur.setMail(mail);
utilisateur.setNom(nom);
utilisateur.setPassword(password);
Assertions.assertThat(utilisateur.getId()).isNull();
utilisateurDao.sauvegarder(utilisateur);
Assertions.assertThat(utilisateur.getId()).isNotNull().isPositive();
Assertions.assertThat(utilisateur.getMail()).isNotNull().isEqualTo(mail);
Assertions.assertThat(utilisateur.getNom()).isNotNull().isEqualTo(nom);
Assertions.assertThat(utilisateur.getPassword()).isNotNull().isEqualTo(password);
}
@Test
public void sauvegarderTestEchec_NomNull() throws Exception {
Utilisateur utilisateur = new Utilisateur();
String nom = null;
String password = "monpassword";
String mail = "monmail@mail.com";
utilisateur.setMail(mail);
utilisateur.setNom(nom);
utilisateur.setPassword(password);
try{
utilisateurDao.sauvegarder(utilisateur);
Assertions.fail("Doit soulever une exception");
}catch(DataIntegrityViolationException dive ){
this.assertSQLCode(dive, SQLCODE.NOT_NULL_VIOLATION);
}
}
@Test
public void sauvegarderTestEchec_PasswordNull() throws Exception {
Utilisateur utilisateur = new Utilisateur();
String nom = "monnom";
String password = null;
String mail = "monmail@mail.com";
utilisateur.setMail(mail);
utilisateur.setNom(nom);
utilisateur.setPassword(password);
try{
utilisateurDao.sauvegarder(utilisateur);
Assertions.fail("Doit soulever une exception");
}catch(DataIntegrityViolationException dive ){
this.assertSQLCode(dive, SQLCODE.NOT_NULL_VIOLATION);
}
}
@Test
public void sauvegarderTestEchec_MailNull() throws Exception {
Utilisateur utilisateur = new Utilisateur();
String nom = "monnom";
String password = "monpassword";
String mail = null;
utilisateur.setMail(mail);
utilisateur.setNom(nom);
utilisateur.setPassword(password);
try{
utilisateurDao.sauvegarder(utilisateur);
Assertions.fail("Doit soulever une exception");
}catch(DataIntegrityViolationException dive ){
this.assertSQLCode(dive, SQLCODE.NOT_NULL_VIOLATION);
}
}
}