package de.randi2.core.integration.modelDatabase; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import org.junit.Before; import org.junit.Test; import org.springframework.transaction.annotation.Transactional; import de.randi2.model.AbstractDomainObject; import de.randi2.model.Login; import de.randi2.model.Person; import de.randi2.model.TrialSite; import de.randi2.testUtility.utility.AbstractDomainDatabaseTest; public class PersonDatabaseTest extends AbstractDomainDatabaseTest<Person> { private Person validPerson; public PersonDatabaseTest() { super(Person.class); } @Before public void setUp() { super.setUp(); validPerson = super.factory.getPerson(); validPerson.setLogin(factory.getLogin()); validPerson.getLogin().setPerson(validPerson); } @Test @Transactional public void testLogin() { Login l = factory.getLogin(); l.setPerson(validPerson); validPerson.setLogin(l); assertNotNull(validPerson.getLogin()); entityManager.persist(validPerson); assertEquals(validPerson.getLogin().getId(),l.getId()); Person p = entityManager.find(Person.class, validPerson .getId()); assertNotNull(p); assertEquals(validPerson.getId(), p.getId()); assertEquals(validPerson.getFirstname(), p.getFirstname()); assertEquals(validPerson.getSurname(), p.getSurname()); assertNotNull(p.getLogin()); assertEquals(validPerson.getLogin().getId(), p.getLogin().getId()); } @Test @Transactional public void testAssistant() { Person assistant = factory.getPerson(); assistant.setSurname(stringUtil.getWithLength(20)); validPerson.setAssistant(assistant); validPerson.setSurname(stringUtil.getWithLength(20)); assertNotNull(validPerson.getAssistant()); entityManager.persist(validPerson.getAssistant()); entityManager.persist(validPerson); assertTrue(validPerson.getAssistant().getId() != AbstractDomainObject.NOT_YET_SAVED_ID); Person p = entityManager.find(Person.class, validPerson .getId()); assertNotNull(p); assertEquals(validPerson.getId(), p.getId()); assertNotNull(p.getAssistant()); assertEquals(assistant.getId(), p.getAssistant().getId()); } @Test @Transactional public void testTrialSite() { TrialSite trialSite = factory.getTrialSite(); entityManager.persist(trialSite.getContactPerson()); entityManager.persist(trialSite); validPerson.setSurname(stringUtil.getWithLength(20)); entityManager.persist(validPerson); Person p = entityManager.find(Person.class, validPerson .getId()); assertNotNull(p); assertEquals(validPerson.getId(), p.getId()); } @Test @Transactional public void databaseIntegrationTest() { entityManager.persist(validPerson); assertTrue(validPerson.getId()>0); assertTrue(validPerson.getLogin().getId()>0); Person person = entityManager.find(Person.class, validPerson.getId()); assertEquals(validPerson.getId(), person.getId()); assertEquals(validPerson.getLogin().getId(), person.getLogin().getId()); } }