@TestFactory
Stream<DynamicNode> testHasWorkingInBetween() {

  Instant thursday = Instant.parse("2020-04-30T07:12:00.000Z");
  Instant friday = Instant.parse("2020-05-01T07:12:00.000Z"); // german holiday
  Instant saturday = Instant.parse("2020-05-02T07:12:00.000Z");
  Instant sunday = Instant.parse("2020-05-03T07:12:00.000Z");
  Instant monday = Instant.parse("2020-05-04T07:12:00.000Z");
  Instant tuesday = Instant.parse("2020-05-05T07:12:00.000Z");
  DynamicContainer noWorkingDaysInBetween =
      DynamicContainer.dynamicContainer(
          "no working days in between",
          Stream.of(
              DynamicTest.dynamicTest(
                  "tuesday <-> tuesday",
                  () ->
                      assertThat(converter.hasWorkingDaysInBetween(tuesday, tuesday)).isFalse()),
              DynamicTest.dynamicTest(
                  "thursday <-> saturday (friday is holiday)",
                  () ->
                      assertThat(converter.hasWorkingDaysInBetween(thursday, saturday))
                          .isFalse()),
              DynamicTest.dynamicTest(
                  "friday <-> friday",
                  () -> assertThat(converter.hasWorkingDaysInBetween(friday, friday)).isFalse()),
              DynamicTest.dynamicTest(
                  "friday <-> monday",
                  () -> assertThat(converter.hasWorkingDaysInBetween(friday, monday)).isFalse()),
              DynamicTest.dynamicTest(
                  "saturday <-> monday",
                  () ->
                      assertThat(converter.hasWorkingDaysInBetween(saturday, monday)).isFalse()),
              DynamicTest.dynamicTest(
                  "sunday <-> monday",
                  () -> assertThat(converter.hasWorkingDaysInBetween(sunday, monday)).isFalse()),
              DynamicTest.dynamicTest(
                  "monday <-> monday",
                  () -> assertThat(converter.hasWorkingDaysInBetween(sunday, monday)).isFalse()),
              DynamicTest.dynamicTest(
                  "monday <-> sunday",
                  () -> assertThat(converter.hasWorkingDaysInBetween(monday, sunday)).isFalse()),
              DynamicTest.dynamicTest(
                  "monday <-> friday",
                  () ->
                      assertThat(converter.hasWorkingDaysInBetween(monday, friday)).isFalse())));
  DynamicContainer hasWorkingDaysInBetween =
      DynamicContainer.dynamicContainer(
          "has working days in between",
          Stream.of(
              DynamicTest.dynamicTest(
                  "friday <-> tuesday",
                  () -> assertThat(converter.hasWorkingDaysInBetween(friday, tuesday)).isTrue()),
              DynamicTest.dynamicTest(
                  "sunday <-> tuesday",
                  () ->
                      assertThat(converter.hasWorkingDaysInBetween(sunday, tuesday)).isTrue())));
  return Stream.of(noWorkingDaysInBetween, hasWorkingDaysInBetween);
}