package pl.edu.icm.saos.importer.common.correction; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import static pl.edu.icm.saos.importer.common.correction.ImportCorrectionBuilder.createUpdate; import static pl.edu.icm.saos.persistence.correction.model.CorrectedProperty.NAME; import static pl.edu.icm.saos.persistence.correction.model.CorrectedProperty.JUDGMENT_TYPE; import org.junit.Before; import org.junit.Test; import pl.edu.icm.saos.persistence.correction.model.ChangeOperation; import pl.edu.icm.saos.persistence.model.Judge; import pl.edu.icm.saos.persistence.model.SupremeCourtJudgmentForm; /** * @author Łukasz Dumiszewski */ public class ImportCorrectionListTest { private ImportCorrectionList correctionList = new ImportCorrectionList(); private Judge judgeJanNowak = new Judge("Jan Nowak"); private ImportCorrection correctionJudgeNameNowak = null; private Judge judgeJanKowalski = new Judge("Jan Kowalski"); private ImportCorrection correctionJudgeNameKowalski = null; private String newJudgmentTypeName = "sentence"; private String oldJudgmentTypeName = "orzeczenie"; private ImportCorrection correctionJudgmentType = null; @Before public void before() { correctionJudgeNameNowak = createUpdate(judgeJanNowak).ofProperty(NAME).oldValue("Sędzia " + judgeJanNowak.getName()).newValue(judgeJanNowak.getName()).build(); correctionJudgeNameKowalski = createUpdate(judgeJanKowalski).ofProperty(NAME).oldValue("Sędzia " + judgeJanKowalski.getName()).newValue(judgeJanKowalski.getName()).build(); correctionJudgmentType = createUpdate(null).ofProperty(JUDGMENT_TYPE).oldValue(oldJudgmentTypeName).newValue(newJudgmentTypeName).build(); correctionList.addCorrection(correctionJudgeNameNowak); correctionList.addCorrection(correctionJudgeNameKowalski); correctionList.addCorrection(correctionJudgmentType); } //------------------------ TESTS -------------------------- @Test public void getNumberOfCorrections() { assertEquals(3, correctionList.getNumberOfCorrections()); } @Test public void hasImportCorrection() { assertTrue(correctionList.hasImportCorrection(correctionJudgeNameNowak)); assertTrue(correctionList.hasImportCorrection(correctionJudgeNameKowalski)); assertTrue(correctionList.hasImportCorrection(correctionJudgmentType)); ImportCorrection correctionJudgeNameKowalskiNew = createUpdate(judgeJanKowalski).ofProperty(NAME).oldValue("Sędzia " + judgeJanKowalski.getName()).newValue(judgeJanKowalski.getName()).build(); assertTrue(correctionList.hasImportCorrection(correctionJudgeNameKowalski)); correctionJudgeNameKowalskiNew.setChangeOperation(ChangeOperation.CREATE); assertTrue(correctionList.hasImportCorrection(correctionJudgeNameKowalski)); } @Test public void changeCorrectedObject() { Judge judgeJanNowakowski = new Judge("Jan Nowakowski"); correctionList.changeCorrectedObject(judgeJanNowak, judgeJanNowakowski); assertTrue(correctionJudgeNameNowak.getCorrectedObject() == judgeJanNowakowski); } @Test(expected=NullPointerException.class) public void changeCorrectedObject_NullNewObject() { correctionList.changeCorrectedObject(judgeJanNowak, null); } @Test(expected=NullPointerException.class) public void changeCorrectedObject_NullOldObject() { correctionList.changeCorrectedObject(null, judgeJanNowak); } @Test(expected=IllegalArgumentException.class) public void changeCorrectedObject_DifferentClasses() { correctionList.changeCorrectedObject(new SupremeCourtJudgmentForm(), judgeJanNowak); } }