package com.constellio.model.entities.records.wrappers.structure; import com.constellio.app.modules.tasks.model.wrappers.structures.TaskReminder; import com.constellio.app.modules.tasks.model.wrappers.structures.TaskReminderFactory; import com.constellio.app.modules.tasks.model.wrappers.Task; import com.constellio.sdk.tests.ConstellioTest; import org.joda.time.LocalDate; import org.junit.Before; import org.junit.Test; import static org.assertj.core.api.Assertions.assertThat; //AFTER Move to task module public class TaskReminderFactoryAcceptanceTest extends ConstellioTest { TaskReminderFactory factory; LocalDate fixedDate = LocalDate.now(); int numberOfDaysInFlexibleDate = 2; Boolean beforeFlexibleDate = true; String flexibleDateMetadataCode = Task.DUE_DATE; @Before public void setUp() throws Exception { factory = new TaskReminderFactory(); } @Test public void whenTaskReminderJustCreatedThenNotProcessedAndNumberOfDaysInFlexibleDateEqualsZero() { TaskReminder taskReminder = new TaskReminder(); assertThat(taskReminder.isProcessed()).isFalse(); assertThat(taskReminder.getNumberOfDaysToRelativeDate()).isEqualTo(0); } @Test public void whenSetAttributeValueThenBecomesDirtyAndValueSet() { TaskReminder taskReminder = new TaskReminder(); assertThat(taskReminder.isDirty()).isFalse(); taskReminder = new TaskReminder(); taskReminder.setFixedDate(fixedDate); assertThat(taskReminder.isDirty()).isTrue(); assertThat(taskReminder.getFixedDate()).isEqualTo(fixedDate); taskReminder = new TaskReminder(); taskReminder.setBeforeRelativeDate(beforeFlexibleDate); assertThat(taskReminder.isDirty()).isTrue(); assertThat(taskReminder.isBeforeRelativeDate()).isEqualTo(beforeFlexibleDate); taskReminder = new TaskReminder(); taskReminder.setRelativeDateMetadataCode(flexibleDateMetadataCode); assertThat(taskReminder.isDirty()).isTrue(); assertThat(taskReminder.getRelativeDateMetadataCode()).isEqualTo(flexibleDateMetadataCode); taskReminder = new TaskReminder(); taskReminder.setNumberOfDaysToRelativeDate(numberOfDaysInFlexibleDate); assertThat(taskReminder.isDirty()).isTrue(); assertThat(taskReminder.getNumberOfDaysToRelativeDate()).isEqualTo(numberOfDaysInFlexibleDate); taskReminder = new TaskReminder(); taskReminder.setProcessed(true); assertThat(taskReminder.isDirty()).isTrue(); assertThat(taskReminder.isProcessed()).isTrue(); } @Test public void whenConvertingStructureWithAllValuesThenRemainsEqual() throws Exception { TaskReminder taskReminder = new TaskReminder(); taskReminder.setFixedDate(fixedDate); taskReminder.setBeforeRelativeDate(beforeFlexibleDate); taskReminder.setRelativeDateMetadataCode(flexibleDateMetadataCode); taskReminder.setNumberOfDaysToRelativeDate(numberOfDaysInFlexibleDate); String stringValue = factory.toString(taskReminder); TaskReminder builtTaskReminder = (TaskReminder) factory.build(stringValue); String stringValue2 = factory.toString(builtTaskReminder); assertThat(builtTaskReminder).isEqualTo(taskReminder); assertThat(stringValue2).isEqualTo(stringValue); assertThat(builtTaskReminder.isDirty()).isFalse(); } @Test public void whenConvertingStructureWithNullValuesThenRemainsEqual() throws Exception { TaskReminder taskReminder = new TaskReminder(); taskReminder.setFixedDate(null); taskReminder.setBeforeRelativeDate(null); taskReminder.setRelativeDateMetadataCode(null); String stringValue = factory.toString(taskReminder); TaskReminder builtTaskReminder = (TaskReminder) factory.build(stringValue); String stringValue2 = factory.toString(builtTaskReminder); assertThat(builtTaskReminder).isEqualTo(taskReminder); assertThat(stringValue2).isEqualTo(stringValue); assertThat(builtTaskReminder.isDirty()).isFalse(); assertThat(builtTaskReminder.getFixedDate()).isNull(); } @Test public void whenConvertingStructureWithoutSetValuesThenRemainsEqual() throws Exception { TaskReminder TaskReminder = new TaskReminder(); String stringValue = factory.toString(TaskReminder); TaskReminder builtTaskReminder = (TaskReminder) factory.build(stringValue); String stringValue2 = factory.toString(builtTaskReminder); assertThat(builtTaskReminder).isEqualTo(TaskReminder); assertThat(stringValue2).isEqualTo(stringValue); assertThat(builtTaskReminder.isDirty()).isFalse(); assertThat(builtTaskReminder.getFixedDate()).isNull(); } }