package no.niths.domain.school; 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.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.school.Course; import no.niths.domain.school.Student; import no.niths.domain.school.Subject; import org.junit.BeforeClass; import org.junit.Test; public class CourseTest { private static final Long ID = 1L; private static final String NAME = "Programmering"; private static final String DESCRIPTION = "Programmeringsfaget"; private static Validator validator; @BeforeClass public static void setUp() { ValidatorFactory factory = Validation.buildDefaultValidatorFactory(); validator = factory.getValidator(); } @Test public void testShouldGenerateNewCourse() { Course course = new Course(); course.setName(NAME); course.setDescription(DESCRIPTION); assertThat(NAME, is(equalTo(course.getName()))); assertThat(DESCRIPTION, is(equalTo(course.getDescription()))); } @Test public void testTwoEqualCourses() { Course course = new Course(ID, NAME, DESCRIPTION); Course equalCourse = course; assertThat(true, is(equalTo(course.equals(equalCourse)))); } @Test public void testTwoCoursesWhichIsNotEqual() { Course course = new Course(ID, NAME, DESCRIPTION); Course notEqualCourse = new Course(NAME, DESCRIPTION); assertThat(false, is(equalTo(course.equals(notEqualCourse)))); } @Test public void testEqualsBetweenNotEqualObjects() { Course course = new Course(ID, NAME, DESCRIPTION); Student student = new Student(); assertThat(false, is(equalTo(course.equals(student)))); } @Test public void testValidationOfCorrectCourseValues() { Course course = new Course(NAME, DESCRIPTION); Set<ConstraintViolation<Course>> constraintViolations = validator .validate(course); assertThat(0, is(equalTo(constraintViolations.size()))); } @Test public void testValidationOfIncorrectCourseValues() { Course course = new Course("X", DESCRIPTION); Set<ConstraintViolation<Course>> constraintViolations = validator .validate(course); constraintViolations = validator.validate(course); assertThat(1, is(equalTo(constraintViolations.size()))); } @Test public void testGettingSubjectFromCourse() { Subject subject = new Subject(); List<Subject> subjectList = new ArrayList<Subject>(); subjectList.add(subject); Course course = new Course(); course.setSubjects(subjectList); } }