package no.niths.domain.battlestation; import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.CoreMatchers.is; import static org.junit.Assert.assertThat; import java.util.ArrayList; import java.util.GregorianCalendar; import java.util.List; import java.util.Set; import javax.validation.ConstraintViolation; import javax.validation.Validation; import javax.validation.Validator; import javax.validation.ValidatorFactory; import no.niths.domain.battlestation.Console; import no.niths.domain.battlestation.Loan; import no.niths.domain.school.Student; import org.junit.BeforeClass; import org.junit.Test; public class LoanTest { private static final GregorianCalendar LOAN_DATE = new GregorianCalendar(); private static final GregorianCalendar RETURN_DATE = new GregorianCalendar(); private static Validator validator; @BeforeClass public static void setUp() { ValidatorFactory factory = Validation.buildDefaultValidatorFactory(); validator = factory.getValidator(); } @Test public void testShouldGenerateNewLoan() { Loan loan = new Loan(); loan.setStartTime(LOAN_DATE); loan.setEndTime(RETURN_DATE); assertThat(LOAN_DATE, is(equalTo(loan.getStartTime()))); assertThat(RETURN_DATE, is(equalTo(loan.getEndTime()))); } @Test public void testValidationOfCorrectLoanValues() { Loan loan = new Loan(LOAN_DATE, RETURN_DATE); Set<ConstraintViolation<Loan>> constraintViolations = validator .validate(loan); assertThat(0, is(equalTo(constraintViolations.size()))); } @Test public void testGettingConsoleFromLoan() { Console console = new Console(); List<Console> consoles = new ArrayList<Console>(); consoles.add(console); Loan loan = new Loan(); loan.setConsoles(consoles); assertThat(consoles.size(), is(equalTo(loan.getConsoles().size()))); } @Test public void testTwoEqualLoans() { Loan loan = new Loan(LOAN_DATE, RETURN_DATE); Loan equalLoan = loan; assertThat(true, is(equalTo(loan.equals(equalLoan)))); } @Test public void testTwoLoansWhichIsNotEqual() { Loan loan = new Loan(LOAN_DATE, RETURN_DATE); loan.setId(1L); Loan notEqualLoan = new Loan(LOAN_DATE); notEqualLoan.setId(2L); assertThat(false, is(equalTo(loan.equals(notEqualLoan)))); } @Test public void testEqualsBetweenNotEqualObjects() { Loan loan = new Loan(LOAN_DATE, RETURN_DATE); Student student = new Student(); assertThat(false, is(equalTo(loan.equals(student)))); } }