public void AdjustTimes_ShouldSetBreakDuration(int originalMins, int adjustedMins, IFixture fixture, WorkedHoursCalculator sut) { // arrange.. var workDay = fixture.Build <TestWorkDay>() .With(wd => wd.BreakDuration, new TimeSpan(0, originalMins, 0)) .Create(); // act.. sut.AdjustTimes(workDay); // assert.. workDay.BreakDuration.Minutes.ShouldBe(adjustedMins, $"Failing condition: original: {originalMins}, adjusted: {adjustedMins}"); }
public void VerifyTimes_ShouldNotThrowException_WhenTimeDifferenceMatchesWorkHours(int startTimeHour, int startTimeMinute, int endTimeHour, int endTimeMinute, int breakDurationHour, int breakDurationMinute, int workedHours, int workedMinutes, IFixture fixture, WorkedHoursCalculator sut) { // arrange.. var workDay = fixture.Build <TestWorkDay>() .With(wd => wd.StartTime, new TimeSpan(startTimeHour, startTimeMinute, 0)) .With(wd => wd.EndTime, new TimeSpan(endTimeHour, endTimeMinute, 0)) .With(wd => wd.BreakDuration, new TimeSpan(breakDurationHour, breakDurationMinute, 0)) .With(wd => wd.WorkedHours, new TimeSpan(workedHours, workedMinutes, 0)) .Create(); // act.. var actual = Record.Exception(() => sut.VerifyTimes(workDay)); // assert.. actual.ShouldBeNull($"Failing condition: {startTimeHour}:{startTimeMinute}-{endTimeHour}:{endTimeMinute}, break: {breakDurationHour}:{breakDurationMinute}, worked hours: {workedHours}:{workedMinutes}"); }
public void VerifyTimes_ShouldThrowException_WhenTimeDifferenceNotMatchWorkHours(IFixture fixture, WorkedHoursCalculator sut) { // arrange.. var workDay = fixture.Build <TestWorkDay>() .With(wd => wd.StartTime, new TimeSpan(8, 30, 0)) .With(wd => wd.EndTime, new TimeSpan(17, 30, 0)) .With(wd => wd.BreakDuration, new TimeSpan(1, 0, 0)) .With(wd => wd.WorkedHours, new TimeSpan(8, 30, 0)) .Create(); // act.. var actual = Record.Exception(() => sut.VerifyTimes(workDay)); // assert.. actual.ShouldNotBeNull(); actual.ShouldBeOfType <ApplicationException>(); }