public Builder fromVacation(Vacation vacation) { this.id = ValuePatch.modifyTo(Vacation.ID); this.isEnabled = ValuePatch.modifyTo(vacation.isEnabled()); this.fromDate = ValuePatch.ofOptional(vacation.getFromDate()); this.toDate = ValuePatch.ofOptional(vacation.getToDate()); this.textBody = ValuePatch.ofOptional(vacation.getTextBody()); this.subject = ValuePatch.ofOptional(vacation.getSubject()); this.htmlBody = ValuePatch.ofOptional(vacation.getHtmlBody()); return this; }
@JsonIgnore private boolean isMissingOrGoodValue() { return id.isKept() || id.toOptional().equals(Optional.of(Vacation.ID)); }
public Builder subject(Optional<String> subject) { this.subject = ValuePatch.ofOptional(subject); return this; }
@Test void toOptionalShouldReturnOptionalWhenModified() { assertThat(ValuePatch.modifyTo(VALUE).toOptional()).isEqualTo(OPTIONAL_OF_VALUE); }
@Test void ofOptionalShouldBeEquivalentToRemoveWhenEmpty() { assertThat(ValuePatch.ofOptional(Optional.empty())).isEqualTo(ValuePatch.remove()); }
public Optional<String> getTextBody() { return textBody.toOptional(); }
@Test public void modifyToShouldBeModified() { assertThat(ValuePatch.modifyTo(VALUE).isModified()).isTrue(); }
@Test public void toOptionalShouldReturnEmptyWhenRemoved() { assertThat(ValuePatch.<Integer>remove().toOptional()).isEqualTo(Optional.empty()); }
public Builder htmlBody(String htmlBody) { this.htmlBody = ValuePatch.modifyTo(htmlBody); return this; }
@Test void mapNotKeptToValueShouldThrowWhenNull() { assertThatThrownBy( () -> ValuePatch.modifyTo(12) .mapNotKeptToOptional(any -> null) .isPresent()) .isInstanceOf(NullPointerException.class); }
@Test void removedShouldNotBeModified() { assertThat(ValuePatch.<Integer>remove().isModified()).isFalse(); }
@Test public void notKeptOrElseShouldReturnOptionalWhenModified() { assertThat(ValuePatch.modifyTo(VALUE).notKeptOrElse(REPLACEMENT)).isEqualTo(OPTIONAL_OF_VALUE); }