1+ using System ;
2+ using Microting . TimePlanningBase . Infrastructure . Data . Entities ;
3+ using NUnit . Framework ;
4+ using TimePlanning . Pn . Infrastructure . Helpers ;
5+
6+ namespace TimePlanning . Pn . Test ;
7+
8+ [ TestFixture ]
9+ public class PlanRegistrationHelperTests
10+ {
11+ [ TestCase ( DayOfWeek . Monday , 180 , 30 , 2 , 60 , 12 , 96 , 12 ) ]
12+ [ TestCase ( DayOfWeek . Tuesday , 180 , 30 , 2 , 60 , 24 , 30 , 0 ) ]
13+ [ TestCase ( DayOfWeek . Wednesday , 180 , 30 , 2 , 60 , 96 , 192 , 12 ) ]
14+ [ TestCase ( DayOfWeek . Thursday , 180 , 30 , 2 , 60 , 96 , 132 , 6 ) ]
15+ [ TestCase ( DayOfWeek . Friday , 180 , 30 , 2 , 60 , 96 , 132 , 6 ) ]
16+ [ TestCase ( DayOfWeek . Saturday , 120 , 30 , 2 , 60 , 96 , 132 , 6 ) ]
17+ [ TestCase ( DayOfWeek . Sunday , 120 , 30 , 2 , 60 , 96 , 192 , 12 ) ]
18+ public void CalculatePauseAutoBreakCalculationActive_SetsPause1Id_Correctly (
19+ DayOfWeek dayOfWeek ,
20+ int breakMinutesDivider ,
21+ int breakMinutesPrDivider ,
22+ int minutesActualAtWorkDivisor ,
23+ int breakMinutesUpperLimit ,
24+ int startId ,
25+ int stopId ,
26+ int expectedPause1Id )
27+ {
28+ // Arrange
29+ var assignedSite = new AssignedSite
30+ {
31+ AutoBreakCalculationActive = true ,
32+ MondayBreakMinutesDivider = breakMinutesDivider ,
33+ MondayBreakMinutesPrDivider = breakMinutesPrDivider ,
34+ MondayBreakMinutesUpperLimit = breakMinutesUpperLimit ,
35+ TuesdayBreakMinutesDivider = breakMinutesDivider ,
36+ TuesdayBreakMinutesPrDivider = breakMinutesPrDivider ,
37+ TuesdayBreakMinutesUpperLimit = breakMinutesUpperLimit ,
38+ WednesdayBreakMinutesDivider = breakMinutesDivider ,
39+ WednesdayBreakMinutesPrDivider = breakMinutesPrDivider ,
40+ WednesdayBreakMinutesUpperLimit = breakMinutesUpperLimit ,
41+ ThursdayBreakMinutesDivider = breakMinutesDivider ,
42+ ThursdayBreakMinutesPrDivider = breakMinutesPrDivider ,
43+ ThursdayBreakMinutesUpperLimit = breakMinutesUpperLimit ,
44+ FridayBreakMinutesDivider = breakMinutesDivider ,
45+ FridayBreakMinutesPrDivider = breakMinutesPrDivider ,
46+ FridayBreakMinutesUpperLimit = breakMinutesUpperLimit ,
47+ SaturdayBreakMinutesDivider = breakMinutesDivider ,
48+ SaturdayBreakMinutesPrDivider = breakMinutesPrDivider ,
49+ SaturdayBreakMinutesUpperLimit = breakMinutesUpperLimit ,
50+ SundayBreakMinutesDivider = breakMinutesDivider ,
51+ SundayBreakMinutesPrDivider = breakMinutesPrDivider ,
52+ SundayBreakMinutesUpperLimit = breakMinutesUpperLimit ,
53+ } ;
54+
55+ var planning = new PlanRegistration
56+ {
57+ Date = DateTime . Today . AddDays ( dayOfWeek - DateTime . Today . DayOfWeek ) ,
58+ Start1Id = startId ,
59+ Stop1Id = stopId ,
60+ Start2Id = 0 ,
61+ Stop2Id = 0 ,
62+ Start3Id = 0 ,
63+ Stop3Id = 0 ,
64+ Start4Id = 0 ,
65+ Stop4Id = 0 ,
66+ Start5Id = 0 ,
67+ Stop5Id = 0
68+ } ;
69+
70+ // Calculate expected Pause1Id
71+ var minutesActualAtWork = ( stopId - startId ) * 5 ;
72+ var numberOfBreaks = minutesActualAtWork / breakMinutesDivider ;
73+ var breakTime = numberOfBreaks * breakMinutesPrDivider ;
74+ // var expectedPause1Id = breakTime < breakMinutesUpperLimit ? breakTime : breakMinutesUpperLimit;
75+
76+ // Act
77+ var result = PlanRegistrationHelper . CalculatePauseAutoBreakCalculationActive ( assignedSite , planning ) ;
78+
79+ // Assert
80+ // Assert.That(expectedPause1Id, result.Pause1Id, $"Failed for {dayOfWeek}");
81+ Assert . That ( result . Pause1Id , Is . EqualTo ( expectedPause1Id ) , $ "Failed for { dayOfWeek } ") ;
82+ }
83+ }
0 commit comments