package de.dhbw.humbuch.model.entity; import static de.dhbw.humbuch.test.TestUtils.*; import static org.junit.Assert.*; import static org.hamcrest.CoreMatchers.*; import java.util.Date; import org.junit.Test; public class BorrowedMaterialTest { private BorrowedMaterial instantiateEntity() { BorrowedMaterial borrowedMaterial = new BorrowedMaterial.Builder( studentInGrade(6), teachingMaterialInBothTermsOfGrade(6), todayPlusDays(-10)).borrowUntil(todayPlusDays(10)) .returnDate(null).received(false).build(); borrowedMaterial.setId(rInt()); return borrowedMaterial; } @Test public void testEntityInstantiation() { assertThat(instantiateEntity(), notNullValue()); } @Test @SuppressWarnings("deprecation") public void testEntityInstantiationWithHibernateConstructor() { assertThat(new BorrowedMaterial(), notNullValue()); } @Test public void testSetIdGetId() { final int id = rInt(); BorrowedMaterial entity = instantiateEntity(); entity.setId(id); assertThat(entity.getId(), is(id)); } @Test public void testSetStudentGetStudent() { final Student student = studentInGrade(6); BorrowedMaterial entity = instantiateEntity(); entity.setStudent(student); assertThat(entity.getStudent(), is(student)); } @Test public void testSetTeachingMaterialGetTeachingMaterial() { final TeachingMaterial teachingMaterial = teachingMaterialInBothTermsOfGrade(6); BorrowedMaterial entity = instantiateEntity(); entity.setTeachingMaterial(teachingMaterial); assertThat(entity.getTeachingMaterial(), is(teachingMaterial)); } @Test public void testSetBorrowFromGetBorrowFrom() { final Date borrowFrom = todayPlusDays(-10); BorrowedMaterial entity = instantiateEntity(); entity.setBorrowFrom(borrowFrom); assertThat(entity.getBorrowFrom(), is(borrowFrom)); } @Test public void testSetBorrowUntilGetBorrowUntil() { final Date borrowUntil = todayPlusDays(10); BorrowedMaterial entity = instantiateEntity(); entity.setBorrowUntil(borrowUntil); assertThat(entity.getBorrowUntil(), is(borrowUntil)); } @Test public void testSetReturnDateGetReturnDate() { final Date returnDate = todayPlusDays(5); BorrowedMaterial entity = instantiateEntity(); entity.setReturnDate(returnDate); assertThat(entity.getReturnDate(), is(returnDate)); } @Test public void testSetReceivedIsReceived() { BorrowedMaterial entity = instantiateEntity(); entity.setReceived(true); assertThat(entity.isReceived(), is(true)); } @Test public void testIsReturnedTrue() { final Date returnDate = todayPlusDays(5); BorrowedMaterial entity = instantiateEntity(); entity.setReturnDate(returnDate); assertThat(entity.isReturned(), is(true)); } @Test public void testIsReturnedFalse() { BorrowedMaterial entity = instantiateEntity(); assertThat(entity.isReturned(), is(false)); } @Test public void testEqualsTrueSameObject() { BorrowedMaterial entity = instantiateEntity(); assertThat(entity.equals(entity), is(true)); } @Test public void testEqualsFalseNullObject() { BorrowedMaterial entity = instantiateEntity(); assertThat(entity.equals(null), is(false)); } @Test public void testEqualsFalseNotInstanceOf() { BorrowedMaterial entity = instantiateEntity(); assertThat(entity.equals(new Object()), is(false)); } @Test public void testEqualsFalseInstanceOfDifferentId() { BorrowedMaterial entity = instantiateEntity(); BorrowedMaterial entity2 = instantiateEntity(); entity2.setId(rInt()); assertThat(entity.equals(entity2), is(false)); } @Test public void testEqualsTrueInstanceOfSameId() { BorrowedMaterial entity = instantiateEntity(); BorrowedMaterial entity2 = instantiateEntity(); entity2.setId(entity.getId()); assertThat(entity.equals(entity2), is(true)); } @Test public void testSameHashCodeInstanceOfSameId() { BorrowedMaterial entity = instantiateEntity(); BorrowedMaterial entity2 = instantiateEntity(); entity2.setId(entity.getId()); assertThat(entity.hashCode(), is(entity2.hashCode())); } @Test public void testDifferentHashCodeInstanceOfDifferentId() { BorrowedMaterial entity = instantiateEntity(); BorrowedMaterial entity2 = instantiateEntity(); entity2.setId(rInt()); assertThat(entity.hashCode(), not(entity2.hashCode())); } @Test public void testCompareToSameObject() { BorrowedMaterial entity = instantiateEntity(); assertThat(entity.compareTo(entity), is(0)); } @Test public void testCompareToInstanceOfDifferentId() { BorrowedMaterial entity = instantiateEntity(); BorrowedMaterial entity2 = instantiateEntity(); assertThat(entity.compareTo(entity2), not(0)); } @Test public void testCompareToInstanceOfDifferentIdDifferentTeachingMaterial() { BorrowedMaterial entity = instantiateEntity(); BorrowedMaterial entity2 = instantiateEntity(); entity2.setTeachingMaterial(teachingMaterialInFirstTermOfGrade(6)); assertThat(entity.compareTo(entity2), not(0)); } }