Skip to content

Commit dbbcff8

Browse files
committed
Adding a test for the new auto break calculations.
1 parent 28e6802 commit dbbcff8

2 files changed

Lines changed: 88 additions & 0 deletions

File tree

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
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+
}

eFormAPI/Plugins/TimePlanning.Pn/TimePlanning.Pn/Infrastructure/Helpers/PlanRegistrationHelper.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,11 @@ public static PlanRegistration CalculatePauseAutoBreakCalculationActive(
124124
break;
125125
}
126126
}
127+
128+
if (planning.Pause1Id > 0)
129+
{
130+
planning.Pause1Id /= 5;
131+
}
127132
}
128133
}
129134

0 commit comments

Comments
 (0)