@@ -21,6 +21,7 @@ import org.junit.jupiter.api.Test
2121import org.junit.jupiter.api.assertThrows
2222import java.math.BigDecimal
2323import java.time.LocalDate
24+ import java.time.YearMonth
2425import java.util.UUID
2526
2627class TransactionEditScenarioDslTest {
@@ -1177,6 +1178,7 @@ class TransactionEditScenarioDslTest {
11771178 val today = LocalDate .of(2026 , 1 , 8 )
11781179 val firstOccurrence = today.plusDays(1 )
11791180 val secondOccurrence = firstOccurrence.plusMonths(1 )
1181+ val thirdOccurrence = secondOccurrence.plusMonths(1 )
11801182 lateinit var bankAccountId: UUID
11811183
11821184 walletScenario(initialDate = today) {
@@ -1217,9 +1219,36 @@ class TransactionEditScenarioDslTest {
12171219 }
12181220
12191221 then {
1220- scheduledManagerCountShouldBe(ScheduledExecutionFilter .FUTURE , 3 )
1221- scheduledManagerCountShouldBe(ScheduledExecutionFilter .ALREADY_GENERATED , 0 )
1222- scheduledManagerCountShouldBe(ScheduledExecutionFilter .ALL , 3 )
1222+ scheduledManagerCountShouldBe(
1223+ ScheduledExecutionFilter .FUTURE ,
1224+ 3 ,
1225+ selectedMonths =
1226+ listOf (
1227+ YearMonth .from(firstOccurrence),
1228+ YearMonth .from(secondOccurrence),
1229+ YearMonth .from(thirdOccurrence),
1230+ ),
1231+ )
1232+ scheduledManagerCountShouldBe(
1233+ ScheduledExecutionFilter .ALREADY_GENERATED ,
1234+ 0 ,
1235+ selectedMonths =
1236+ listOf (
1237+ YearMonth .from(firstOccurrence),
1238+ YearMonth .from(secondOccurrence),
1239+ YearMonth .from(thirdOccurrence),
1240+ ),
1241+ )
1242+ scheduledManagerCountShouldBe(
1243+ ScheduledExecutionFilter .ALL ,
1244+ 3 ,
1245+ selectedMonths =
1246+ listOf (
1247+ YearMonth .from(firstOccurrence),
1248+ YearMonth .from(secondOccurrence),
1249+ YearMonth .from(thirdOccurrence),
1250+ ),
1251+ )
12231252 }
12241253
12251254 `when ` {
@@ -1229,9 +1258,26 @@ class TransactionEditScenarioDslTest {
12291258
12301259 then {
12311260 balanceShouldBe(BigDecimal (" 900.00" ), bankAccountId)
1232- scheduledManagerCountShouldBe(ScheduledExecutionFilter .FUTURE , 2 )
1233- scheduledManagerCountShouldBe(ScheduledExecutionFilter .ALREADY_GENERATED , 1 )
1234- scheduledManagerCountShouldBe(ScheduledExecutionFilter .ALL , 3 )
1261+ scheduledManagerCountShouldBe(
1262+ ScheduledExecutionFilter .FUTURE ,
1263+ 2 ,
1264+ selectedMonths = listOf (YearMonth .from(secondOccurrence), YearMonth .from(thirdOccurrence)),
1265+ )
1266+ scheduledManagerCountShouldBe(
1267+ ScheduledExecutionFilter .ALREADY_GENERATED ,
1268+ 1 ,
1269+ selectedMonths = listOf (YearMonth .from(firstOccurrence)),
1270+ )
1271+ scheduledManagerCountShouldBe(
1272+ ScheduledExecutionFilter .ALL ,
1273+ 3 ,
1274+ selectedMonths =
1275+ listOf (
1276+ YearMonth .from(firstOccurrence),
1277+ YearMonth .from(secondOccurrence),
1278+ YearMonth .from(thirdOccurrence),
1279+ ),
1280+ )
12351281 }
12361282
12371283 `when ` {
@@ -1366,8 +1412,16 @@ class TransactionEditScenarioDslTest {
13661412
13671413 then {
13681414 balanceShouldBe(BigDecimal (" 960.00" ), bankAccountId)
1369- scheduledManagerCountShouldBe(ScheduledExecutionFilter .FUTURE , 1 )
1370- scheduledManagerCountShouldBe(ScheduledExecutionFilter .ALREADY_GENERATED , 1 )
1415+ scheduledManagerCountShouldBe(
1416+ ScheduledExecutionFilter .FUTURE ,
1417+ 1 ,
1418+ selectedMonths = listOf (YearMonth .from(secondOccurrence)),
1419+ )
1420+ scheduledManagerCountShouldBe(
1421+ ScheduledExecutionFilter .ALREADY_GENERATED ,
1422+ 1 ,
1423+ selectedMonths = listOf (YearMonth .from(today)),
1424+ )
13711425 scheduledManagerDatesShouldBe(
13721426 filter = ScheduledExecutionFilter .ALL ,
13731427 expectedDates = listOf (today, secondOccurrence),
@@ -1479,7 +1533,11 @@ class TransactionEditScenarioDslTest {
14791533
14801534 then {
14811535 balanceShouldBe(BigDecimal (" 900.00" ), bankAccountId)
1482- scheduledManagerCountShouldBe(ScheduledExecutionFilter .ALREADY_GENERATED , 1 )
1536+ scheduledManagerCountShouldBe(
1537+ ScheduledExecutionFilter .ALREADY_GENERATED ,
1538+ 1 ,
1539+ selectedMonths = listOf (YearMonth .from(today)),
1540+ )
14831541 scheduledManagerDatesShouldBe(
14841542 filter = ScheduledExecutionFilter .ALL ,
14851543 expectedDates = listOf (today, secondOccurrence),
@@ -1488,6 +1546,7 @@ class TransactionEditScenarioDslTest {
14881546 filter = ScheduledExecutionFilter .FUTURE ,
14891547 expectedInstallments = listOf (2 ),
14901548 expectedTotal = 3 ,
1549+ selectedMonths = listOf (YearMonth .from(secondOccurrence)),
14911550 )
14921551 lastPublishedWalletEventShouldConvert(ActionEventType .UPDATE )
14931552 }
@@ -1507,6 +1566,7 @@ class TransactionEditScenarioDslTest {
15071566 filter = ScheduledExecutionFilter .FUTURE ,
15081567 expectedInstallments = listOf (3 ),
15091568 expectedTotal = 3 ,
1569+ selectedMonths = listOf (YearMonth .from(thirdOccurrence)),
15101570 )
15111571 }
15121572 }
@@ -1559,11 +1619,19 @@ class TransactionEditScenarioDslTest {
15591619
15601620 then {
15611621 balanceShouldBe(BigDecimal (" 960.00" ), bankAccountId)
1562- scheduledManagerCountShouldBe(ScheduledExecutionFilter .ALREADY_GENERATED , 1 )
1563- scheduledManagerCountShouldBe(ScheduledExecutionFilter .FUTURE , 1 )
1622+ scheduledManagerCountShouldBe(
1623+ ScheduledExecutionFilter .ALREADY_GENERATED ,
1624+ 1 ,
1625+ selectedMonths = listOf (YearMonth .from(today)),
1626+ )
1627+ scheduledManagerCountShouldBe(
1628+ ScheduledExecutionFilter .FUTURE ,
1629+ 2 ,
1630+ selectedMonths = listOf (YearMonth .from(secondOccurrence)),
1631+ )
15641632 scheduledManagerDatesShouldBe(
15651633 filter = ScheduledExecutionFilter .ALL ,
1566- expectedDates = listOf (today, secondOccurrence),
1634+ expectedDates = listOf (today, secondOccurrence, thirdOccurrence ),
15671635 )
15681636 lastPublishedWalletEventShouldConvert(ActionEventType .UPDATE )
15691637 }
@@ -1621,8 +1689,21 @@ class TransactionEditScenarioDslTest {
16211689 recurrenceLimitShouldBe(5 )
16221690 recurrenceSeriesQtyTotalShouldBe(5 )
16231691 recurrenceNextExecutionShouldBe(fourthOccurrence)
1624- scheduledManagerCountShouldBe(ScheduledExecutionFilter .ALREADY_GENERATED , 3 )
1625- scheduledManagerCountShouldBe(ScheduledExecutionFilter .FUTURE , 1 )
1692+ scheduledManagerCountShouldBe(
1693+ ScheduledExecutionFilter .ALREADY_GENERATED ,
1694+ 3 ,
1695+ selectedMonths =
1696+ listOf (
1697+ YearMonth .from(firstOccurrence),
1698+ YearMonth .from(secondOccurrence),
1699+ YearMonth .from(thirdOccurrence),
1700+ ),
1701+ )
1702+ scheduledManagerCountShouldBe(
1703+ ScheduledExecutionFilter .FUTURE ,
1704+ 1 ,
1705+ selectedMonths = listOf (YearMonth .from(fourthOccurrence)),
1706+ )
16261707 scheduledManagerDatesShouldBe(
16271708 filter = ScheduledExecutionFilter .ALREADY_GENERATED ,
16281709 expectedDates = listOf (firstOccurrence, secondOccurrence, thirdOccurrence),
@@ -1635,6 +1716,7 @@ class TransactionEditScenarioDslTest {
16351716 filter = ScheduledExecutionFilter .FUTURE ,
16361717 expectedInstallments = listOf (4 ),
16371718 expectedTotal = 5 ,
1719+ selectedMonths = listOf (YearMonth .from(fourthOccurrence)),
16381720 )
16391721 }
16401722
@@ -1655,6 +1737,7 @@ class TransactionEditScenarioDslTest {
16551737 filter = ScheduledExecutionFilter .FUTURE ,
16561738 expectedInstallments = listOf (5 ),
16571739 expectedTotal = 5 ,
1740+ selectedMonths = listOf (YearMonth .from(fifthOccurrence)),
16581741 )
16591742 }
16601743 }
@@ -1697,8 +1780,21 @@ class TransactionEditScenarioDslTest {
16971780 recurrenceLimitShouldBe(null )
16981781 recurrenceSeriesQtyTotalShouldBe(3 )
16991782 recurrenceNextExecutionShouldBe(fourthOccurrence)
1700- scheduledManagerCountShouldBe(ScheduledExecutionFilter .ALREADY_GENERATED , 3 )
1701- scheduledManagerCountShouldBe(ScheduledExecutionFilter .FUTURE , 1 )
1783+ scheduledManagerCountShouldBe(
1784+ ScheduledExecutionFilter .ALREADY_GENERATED ,
1785+ 3 ,
1786+ selectedMonths =
1787+ listOf (
1788+ YearMonth .from(firstOccurrence),
1789+ YearMonth .from(secondOccurrence),
1790+ YearMonth .from(thirdOccurrence),
1791+ ),
1792+ )
1793+ scheduledManagerCountShouldBe(
1794+ ScheduledExecutionFilter .FUTURE ,
1795+ 1 ,
1796+ selectedMonths = listOf (YearMonth .from(fourthOccurrence)),
1797+ )
17021798 scheduledManagerDatesShouldBe(
17031799 filter = ScheduledExecutionFilter .ALREADY_GENERATED ,
17041800 expectedDates = listOf (firstOccurrence, secondOccurrence, thirdOccurrence),
@@ -1778,8 +1874,16 @@ class TransactionEditScenarioDslTest {
17781874 then {
17791875 balanceShouldBe(BigDecimal (" 900.00" ), bankAccountId)
17801876 recurrenceExecutionCountShouldBe(1 )
1781- scheduledManagerCountShouldBe(ScheduledExecutionFilter .ALREADY_GENERATED , 2 )
1782- scheduledManagerCountShouldBe(ScheduledExecutionFilter .FUTURE , 1 )
1877+ scheduledManagerCountShouldBe(
1878+ ScheduledExecutionFilter .ALREADY_GENERATED ,
1879+ 2 ,
1880+ selectedMonths = listOf (YearMonth .from(firstOccurrence)),
1881+ )
1882+ scheduledManagerCountShouldBe(
1883+ ScheduledExecutionFilter .FUTURE ,
1884+ 1 ,
1885+ selectedMonths = listOf (YearMonth .from(thirdOccurrence)),
1886+ )
17831887 scheduledManagerDatesShouldBe(
17841888 filter = ScheduledExecutionFilter .ALL ,
17851889 expectedDates = listOf (firstOccurrence, allowedPastDate, thirdOccurrence),
@@ -1927,8 +2031,16 @@ class TransactionEditScenarioDslTest {
19272031 then {
19282032 balanceShouldBe(BigDecimal (" 800.00" ), bankAccountId)
19292033 recurrenceExecutionCountShouldBe(1 )
1930- scheduledManagerCountShouldBe(ScheduledExecutionFilter .ALREADY_GENERATED , 2 )
1931- scheduledManagerCountShouldBe(ScheduledExecutionFilter .FUTURE , 1 )
2034+ scheduledManagerCountShouldBe(
2035+ ScheduledExecutionFilter .ALREADY_GENERATED ,
2036+ 2 ,
2037+ selectedMonths = listOf (YearMonth .from(firstOccurrence)),
2038+ )
2039+ scheduledManagerCountShouldBe(
2040+ ScheduledExecutionFilter .FUTURE ,
2041+ 1 ,
2042+ selectedMonths = listOf (YearMonth .from(thirdOccurrence)),
2043+ )
19322044 scheduledManagerDatesShouldBe(
19332045 filter = ScheduledExecutionFilter .ALL ,
19342046 expectedDates = listOf (firstOccurrence, allowedPastDate, thirdOccurrence),
@@ -1937,6 +2049,7 @@ class TransactionEditScenarioDslTest {
19372049 filter = ScheduledExecutionFilter .FUTURE ,
19382050 expectedInstallments = listOf (3 ),
19392051 expectedTotal = 3 ,
2052+ selectedMonths = listOf (YearMonth .from(thirdOccurrence)),
19402053 )
19412054 }
19422055 }
@@ -2031,6 +2144,7 @@ class TransactionEditScenarioDslTest {
20312144 filter = ScheduledExecutionFilter .FUTURE ,
20322145 expectedInstallments = listOf (3 ),
20332146 expectedTotal = 5 ,
2147+ selectedMonths = listOf (YearMonth .from(thirdOccurrence)),
20342148 )
20352149 }
20362150 }
@@ -2084,6 +2198,7 @@ class TransactionEditScenarioDslTest {
20842198 filter = ScheduledExecutionFilter .FUTURE ,
20852199 expectedInstallments = listOf (2 ),
20862200 expectedTotal = 3 ,
2201+ selectedMonths = listOf (YearMonth .from(secondOccurrence)),
20872202 )
20882203 }
20892204
@@ -2097,6 +2212,7 @@ class TransactionEditScenarioDslTest {
20972212 filter = ScheduledExecutionFilter .FUTURE ,
20982213 expectedInstallments = listOf (3 ),
20992214 expectedTotal = 3 ,
2215+ selectedMonths = listOf (YearMonth .from(secondOccurrence.plusMonths(1 ))),
21002216 )
21012217 }
21022218 }
@@ -2150,6 +2266,7 @@ class TransactionEditScenarioDslTest {
21502266 filter = ScheduledExecutionFilter .FUTURE ,
21512267 expectedInstallments = listOf (2 , 3 ),
21522268 expectedTotal = 3 ,
2269+ selectedMonths = listOf (YearMonth .from(secondOccurrence), YearMonth .from(secondOccurrence.plusMonths(1 ))),
21532270 )
21542271 }
21552272 }
@@ -2545,6 +2662,7 @@ class TransactionEditScenarioDslTest {
25452662 filter = ScheduledExecutionFilter .FUTURE ,
25462663 expectedInstallments = listOf (2 ),
25472664 expectedTotal = 3 ,
2665+ selectedMonths = listOf (YearMonth .from(secondOccurrence)),
25482666 )
25492667 }
25502668 }
0 commit comments