@Test public final void shouldCreateCorrectOrderDates1() { // given Entity order = mockOrder( START_DATE_1.toDate(), START_DATE_2.toDate(), START_DATE_3.toDate(), END_DATE_1.toDate(), END_DATE_2.toDate(), END_DATE_3.toDate()); // when Optional<OrderDates> maybeOrderDates = OrderDates.of(order); // then Assert.assertTrue(maybeOrderDates.isPresent()); OrderDates orderDates = maybeOrderDates.get(); Assert.assertEquals(START_DATE_1, orderDates.getStart().planned()); Assert.assertEquals(Optional.of(START_DATE_2), orderDates.getStart().corrected()); Assert.assertEquals(Optional.of(START_DATE_3), orderDates.getStart().effective()); Assert.assertEquals(START_DATE_2, orderDates.getStart().correctedWithFallback()); Assert.assertEquals(START_DATE_3, orderDates.getStart().effectiveWithFallback()); Assert.assertEquals(END_DATE_1, orderDates.getEnd().planned()); Assert.assertEquals(Optional.of(END_DATE_2), orderDates.getEnd().corrected()); Assert.assertEquals(Optional.of(END_DATE_3), orderDates.getEnd().effective()); Assert.assertEquals(END_DATE_2, orderDates.getEnd().correctedWithFallback()); Assert.assertEquals(END_DATE_3, orderDates.getEnd().effectiveWithFallback()); }
@Test public final void shouldUsePassedDefaultDatesIfOrderDoesNotHaveDefinedPlannedDates() { // given Entity order = mockOrder(null, null, null, null, null, null); // when OrderDates orderDates = OrderDates.of(order, START_DATE_1, END_DATE_1); // then Assert.assertEquals(START_DATE_1, orderDates.getStart().planned()); Assert.assertEquals(Optional.<LocalDate>absent(), orderDates.getStart().corrected()); Assert.assertEquals(Optional.<LocalDate>absent(), orderDates.getStart().effective()); Assert.assertEquals(START_DATE_1, orderDates.getStart().correctedWithFallback()); Assert.assertEquals(START_DATE_1, orderDates.getStart().effectiveWithFallback()); Assert.assertEquals(END_DATE_1, orderDates.getEnd().planned()); Assert.assertEquals(Optional.<LocalDate>absent(), orderDates.getEnd().corrected()); Assert.assertEquals(Optional.<LocalDate>absent(), orderDates.getEnd().effective()); Assert.assertEquals(END_DATE_1, orderDates.getEnd().correctedWithFallback()); Assert.assertEquals(END_DATE_1, orderDates.getEnd().effectiveWithFallback()); }