Example #1
0
 @Test
 public void create_from_days_hours_minutes() {
   WorkDuration workDuration = WorkDuration.create(1, 1, 1, HOURS_IN_DAY);
   assertThat(workDuration.days()).isEqualTo(1);
   assertThat(workDuration.hours()).isEqualTo(1);
   assertThat(workDuration.minutes()).isEqualTo(1);
   assertThat(workDuration.toMinutes())
       .isEqualTo(ONE_DAY_IN_MINUTES + ONE_HOUR_IN_MINUTES + ONE_MINUTE);
   assertThat(workDuration.hoursInDay()).isEqualTo(HOURS_IN_DAY);
 }
Example #2
0
  @Test
  public void subtract() {
    // 1d 1h - 5h = 4h
    WorkDuration result =
        WorkDuration.create(1, 1, 0, HOURS_IN_DAY)
            .subtract(
                WorkDuration.createFromValueAndUnit(5, WorkDuration.UNIT.HOURS, HOURS_IN_DAY));
    assertThat(result.days()).isEqualTo(0);
    assertThat(result.hours()).isEqualTo(4);
    assertThat(result.minutes()).isEqualTo(0);
    assertThat(result.hoursInDay()).isEqualTo(HOURS_IN_DAY);

    // 1h 10m - 30m = 40m
    result =
        WorkDuration.create(0, 1, 10, HOURS_IN_DAY)
            .subtract(
                WorkDuration.createFromValueAndUnit(30, WorkDuration.UNIT.MINUTES, HOURS_IN_DAY));
    assertThat(result.days()).isEqualTo(0);
    assertThat(result.hours()).isEqualTo(0);
    assertThat(result.minutes()).isEqualTo(40);
    assertThat(result.hoursInDay()).isEqualTo(HOURS_IN_DAY);

    // 30m - 20m = 10m
    assertThat(
            WorkDuration.createFromValueAndUnit(30, WorkDuration.UNIT.MINUTES, HOURS_IN_DAY)
                .subtract(
                    WorkDuration.createFromValueAndUnit(
                        20, WorkDuration.UNIT.MINUTES, HOURS_IN_DAY))
                .minutes())
        .isEqualTo(10);

    assertThat(
            WorkDuration.createFromValueAndUnit(10, WorkDuration.UNIT.MINUTES, HOURS_IN_DAY)
                .subtract(null)
                .minutes())
        .isEqualTo(10);
  }