package pl.edu.icm.saos.webapp.judgment; import static org.hamcrest.MatcherAssert.assertThat; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; import org.hamcrest.Matchers; import org.joda.time.LocalDate; import org.junit.Test; import pl.edu.icm.saos.persistence.model.CourtType; import pl.edu.icm.saos.persistence.model.Judgment.JudgmentType; import pl.edu.icm.saos.persistence.model.SupremeCourtJudgment.PersonnelType; import pl.edu.icm.saos.search.search.model.JudgmentCriteria; import pl.edu.icm.saos.webapp.common.search.CourtCriteria; import com.google.common.collect.Lists; import com.google.common.collect.Sets; /** * @author Łukasz Pawełczak * */ public class JudgmentCriteriaFormConverterTest { JudgmentCriteriaFormConverter judgmentCriteriaFormConverter = new JudgmentCriteriaFormConverter(); private LocalDate localDate[] = {new LocalDate(2014, 1, 2), new LocalDate(2015, 3, 22)}; //------------------------ TESTS -------------------------- @Test public void convert_ccIncludeDependentCourtJudgments_FALSE() { // given JudgmentCriteriaForm judgmentCriteriaForm = createCriteriaForm(); // execute JudgmentCriteria judgmentCriteria = judgmentCriteriaFormConverter.convert(judgmentCriteriaForm); // assert assertEquals(judgmentCriteriaForm.getCourtCriteria().getCcCourtId(), judgmentCriteria.getCcCourtId()); assertNull(judgmentCriteria.getCcDirectOrSuperiorCourtId()); assertJudgmentCriteria(judgmentCriteriaForm, judgmentCriteria); } @Test public void convert_ccIncludeDependentCourtJudgments_TRUE() { // given JudgmentCriteriaForm judgmentCriteriaForm = createCriteriaForm(); judgmentCriteriaForm.getCourtCriteria().setCcIncludeDependentCourtJudgments(true); // execute JudgmentCriteria judgmentCriteria = judgmentCriteriaFormConverter.convert(judgmentCriteriaForm); // assert assertEquals(judgmentCriteriaForm.getCourtCriteria().getCcCourtId(), judgmentCriteria.getCcDirectOrSuperiorCourtId()); assertNull(judgmentCriteria.getCcCourtId()); assertJudgmentCriteria(judgmentCriteriaForm, judgmentCriteria); } //------------------------ PRIVATE -------------------------- private void assertJudgmentCriteria(JudgmentCriteriaForm judgmentCriteriaForm, JudgmentCriteria judgmentCriteria) { assertEquals(judgmentCriteriaForm.getAll(), judgmentCriteria.getAll()); assertEquals(judgmentCriteriaForm.getSignature(), judgmentCriteria.getCaseNumber()); assertEquals(judgmentCriteriaForm.getDateFrom(), judgmentCriteria.getJudgmentDateFrom()); assertEquals(judgmentCriteriaForm.getDateTo(), judgmentCriteria.getJudgmentDateTo()); CourtCriteria courtCriteria = judgmentCriteriaForm.getCourtCriteria(); assertEquals(courtCriteria.getCourtType(), judgmentCriteria.getCourtType()); assertEquals(courtCriteria.getCcCourtDivisionId(), judgmentCriteria.getCcCourtDivisionId()); assertEquals(courtCriteria.getScCourtChamberId(), judgmentCriteria.getScCourtChamberId()); assertEquals(courtCriteria.getScCourtChamberDivisionId(), judgmentCriteria.getScCourtChamberDivisionId()); assertEquals(judgmentCriteriaForm.getScPersonnelType(), judgmentCriteria.getScPersonnelType()); assertEquals(judgmentCriteriaForm.getScJudgmentFormId(), judgmentCriteria.getScJudgmentFormId()); assertEquals(judgmentCriteriaForm.getCtDissentingOpinion(), judgmentCriteria.getCtDissentingOpinion()); assertEquals(judgmentCriteriaForm.getJudgeName(), judgmentCriteria.getJudgeName()); assertEquals(1, judgmentCriteria.getKeywords().size()); assertEquals(judgmentCriteriaForm.getKeywords(), judgmentCriteria.getKeywords()); assertEquals(2, judgmentCriteria.getJudgmentTypes().size()); assertThat(judgmentCriteria.getJudgmentTypes(), Matchers.containsInAnyOrder(JudgmentType.SENTENCE, JudgmentType.DECISION)); assertEquals(judgmentCriteriaForm.getLegalBase(), judgmentCriteria.getLegalBase()); assertEquals(judgmentCriteriaForm.getReferencedRegulation(), judgmentCriteria.getReferencedRegulation()); assertEquals(judgmentCriteriaForm.getLawJournalEntryCode(), judgmentCriteria.getLawJournalEntryCode()); assertEquals(judgmentCriteriaForm.getReferencedCourtCaseId(), judgmentCriteria.getReferencedCourtCaseId()); } //------------------------ PRIVATE -------------------------- private JudgmentCriteriaForm createCriteriaForm() { JudgmentCriteriaForm judgmentCriteriaForm = new JudgmentCriteriaForm(); judgmentCriteriaForm.setAll("I threw a stone at my neighbor."); judgmentCriteriaForm.setSignature("Sig. 1.4"); judgmentCriteriaForm.setDateFrom(localDate[0]); judgmentCriteriaForm.setDateTo(localDate[1]); CourtCriteria courtCriteria = judgmentCriteriaForm.getCourtCriteria(); courtCriteria.setCourtType(CourtType.COMMON); courtCriteria.setCcCourtId(12l); courtCriteria.setCcCourtDivisionId(15l); courtCriteria.setScCourtChamberId(13l); courtCriteria.setScCourtChamberDivisionId(14l); judgmentCriteriaForm.setScPersonnelType(PersonnelType.FIVE_PERSON); judgmentCriteriaForm.setScJudgmentFormId(12l); judgmentCriteriaForm.setCtDissentingOpinion("opinion"); judgmentCriteriaForm.setJudgeName("Judge Dredd"); judgmentCriteriaForm.setKeywords(Lists.newArrayList("very important keyword")); judgmentCriteriaForm.setJudgmentTypes(Sets.newHashSet(JudgmentType.SENTENCE, JudgmentType.DECISION)); judgmentCriteriaForm.setLegalBase("12.55"); judgmentCriteriaForm.setReferencedRegulation("Art. 4.6"); judgmentCriteriaForm.setLawJournalEntryCode("1964/43/296"); judgmentCriteriaForm.setReferencedCourtCaseId(54l); return judgmentCriteriaForm; } }