package pl.edu.icm.saos.persistence.correction.model; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import static pl.edu.icm.saos.persistence.correction.model.CorrectedProperty.NAME; import static pl.edu.icm.saos.persistence.correction.model.JudgmentCorrectionBuilder.createFor; import org.junit.Test; import org.powermock.reflect.Whitebox; import pl.edu.icm.saos.persistence.model.CommonCourtJudgment; import pl.edu.icm.saos.persistence.model.Judge; import pl.edu.icm.saos.persistence.model.Judgment; /** * @author Łukasz Dumiszewski */ public class JudgmentCorrectionBuilderTest { private Judgment judgment = new CommonCourtJudgment(); Judge judge = new Judge("Anna Maria"); { Whitebox.setInternalState(judge, "id", 5); } //------------------------ TESTS -------------------------- @Test(expected=NullPointerException.class) public void createFor_NoJudgment() { createFor(null); } @Test(expected=IllegalStateException.class) public void build_NoChangeOperationNoChangedObject() { createFor(judgment).property(NAME).oldValue("Sędzia Anna Maria").newValue("Anna Maria").build(); } //--- update @Test public void createUpdate() { // execute JudgmentCorrection judgmentCorrection = createFor(judgment).update(judge).property(NAME).oldValue("Sędzia Anna Maria").newValue("Anna Maria").build(); // assert assertTrue(judgment == judgmentCorrection.getJudgment()); assertEquals(ChangeOperation.UPDATE, judgmentCorrection.getChangeOperation()); assertEquals(Judge.class, judgmentCorrection.getCorrectedObjectClass()); assertEquals(judge.getId(), judgmentCorrection.getCorrectedObjectId().longValue()); assertEquals(NAME, judgmentCorrection.getCorrectedProperty()); assertEquals("Sędzia Anna Maria", judgmentCorrection.getOldValue()); assertEquals("Anna Maria", judgmentCorrection.getNewValue()); } @Test(expected=IllegalStateException.class) public void build_update_noCorrectedProperty() { createFor(judgment).update(judge).oldValue("!!!").newValue("gffg").build(); } @Test(expected=IllegalStateException.class) public void build_update_noNewValue() { createFor(judgment).update(judge).property(NAME).oldValue("sdsdsd").newValue(null).build(); } //--- create @Test public void createCreate() { // execute JudgmentCorrection judgmentCorrection = createFor(judgment).create(judge).oldValue("Sędzia Anna Maria").newValue("Anna Maria").build(); // assert assertTrue(judgment == judgmentCorrection.getJudgment()); assertEquals(ChangeOperation.CREATE, judgmentCorrection.getChangeOperation()); assertEquals(Judge.class, judgmentCorrection.getCorrectedObjectClass()); assertEquals(judge.getId(), judgmentCorrection.getCorrectedObjectId().longValue()); assertNull(judgmentCorrection.getCorrectedProperty()); assertEquals("Sędzia Anna Maria", judgmentCorrection.getOldValue()); assertEquals("Anna Maria", judgmentCorrection.getNewValue()); } @Test(expected=IllegalArgumentException.class) public void build_create_createdObjectIsJudgment() { createFor(judgment).create(judgment).oldValue("!!!").newValue(null).build(); } @Test(expected=IllegalStateException.class) public void build_create_noNewValue() { createFor(judgment).create(judge).oldValue("sdsdsd").newValue(null).build(); } @Test(expected=IllegalStateException.class) public void build_create_correctedObjectIdNotNull() { createFor(judgment).create(new Judge("sds")).oldValue("sdsdsd").newValue("fdfd").build(); } @Test(expected=IllegalStateException.class) public void build_create_correctedPropertyNotNull() { createFor(judgment).create(judge).property(NAME).oldValue("!!!").newValue("ddsds").build(); } //--- delete @Test public void createDelete() { // execute JudgmentCorrection judgmentCorrection = createFor(judgment).delete(Judge.class).oldValue("!!!").newValue(null).build(); // assert assertTrue(judgment == judgmentCorrection.getJudgment()); assertEquals(ChangeOperation.DELETE, judgmentCorrection.getChangeOperation()); assertEquals(Judge.class, judgmentCorrection.getCorrectedObjectClass()); assertNull(judgmentCorrection.getCorrectedObjectId()); assertNull(judgmentCorrection.getCorrectedProperty()); assertEquals("!!!", judgmentCorrection.getOldValue()); assertNull(judgmentCorrection.getNewValue()); } @Test(expected=IllegalStateException.class) public void build_delete_correctedPropertyNotNull() { createFor(judgment).delete(Judge.class).property(NAME).oldValue("!!!").newValue(null).build(); } @Test(expected=IllegalStateException.class) public void build_delete_newValueNotEmpty() { createFor(judgment).delete(Judge.class).oldValue(" ss ").newValue("dd").build(); } }