From 307f036abc305e5286360282455544745fdcc180 Mon Sep 17 00:00:00 2001 From: LarissaASLeite <105739146+LarissaASLeite@users.noreply.github.com> Date: Tue, 21 Jan 2025 15:29:53 +0100 Subject: [PATCH] fix: Debt-position-status-checker (#23) --- .../service/statusalign/StatusRulesHandler.java | 5 +---- .../debtposition/DebtPositionStatusChecker.java | 6 ++++++ .../PaymentOptionStatusChecker.java | 6 ++++++ .../DebtPositionStatusCheckerTest.java | 16 +++------------- 4 files changed, 16 insertions(+), 17 deletions(-) diff --git a/src/main/java/it/gov/pagopa/pu/debtpositions/service/statusalign/StatusRulesHandler.java b/src/main/java/it/gov/pagopa/pu/debtpositions/service/statusalign/StatusRulesHandler.java index a00598f..ed6f0cc 100644 --- a/src/main/java/it/gov/pagopa/pu/debtpositions/service/statusalign/StatusRulesHandler.java +++ b/src/main/java/it/gov/pagopa/pu/debtpositions/service/statusalign/StatusRulesHandler.java @@ -53,10 +53,7 @@ public boolean isToSync(List childrenStatusList) { return childrenStatusList.contains(syncStatus); } - public boolean isPartiallyPaid(List childrenStatusList) { - return childrenStatusList.contains(paidStatus) && - (childrenStatusList.contains(unpaidStatus) || childrenStatusList.contains(expiredStatus)); - } + protected abstract boolean isPartiallyPaid(List childrenStatusList); public boolean isUnpaid(List childrenStatusList) { return allMatch(childrenStatusList, unpaidStatus, allowedCancelledStatuses); diff --git a/src/main/java/it/gov/pagopa/pu/debtpositions/service/statusalign/debtposition/DebtPositionStatusChecker.java b/src/main/java/it/gov/pagopa/pu/debtpositions/service/statusalign/debtposition/DebtPositionStatusChecker.java index 5727554..3d465aa 100644 --- a/src/main/java/it/gov/pagopa/pu/debtpositions/service/statusalign/debtposition/DebtPositionStatusChecker.java +++ b/src/main/java/it/gov/pagopa/pu/debtpositions/service/statusalign/debtposition/DebtPositionStatusChecker.java @@ -44,6 +44,12 @@ public DebtPositionStatus calculateNewStatus(List paymentOp } } + @Override + public boolean isPartiallyPaid(List childrenStatusList) { + return childrenStatusList.contains(PARTIALLY_PAID); + } + + @Override protected List getChildStatuses(DebtPosition debtPosition) { return debtPosition.getPaymentOptions().stream() diff --git a/src/main/java/it/gov/pagopa/pu/debtpositions/service/statusalign/paymentoption/PaymentOptionStatusChecker.java b/src/main/java/it/gov/pagopa/pu/debtpositions/service/statusalign/paymentoption/PaymentOptionStatusChecker.java index c40adcf..984070a 100644 --- a/src/main/java/it/gov/pagopa/pu/debtpositions/service/statusalign/paymentoption/PaymentOptionStatusChecker.java +++ b/src/main/java/it/gov/pagopa/pu/debtpositions/service/statusalign/paymentoption/PaymentOptionStatusChecker.java @@ -61,4 +61,10 @@ protected void setStatus(PaymentOption paymentOption, PaymentOptionStatus newSta protected void storeStatus(PaymentOption paymentOption, PaymentOptionStatus newStatus) { paymentOptionRepository.updateStatus(paymentOption.getPaymentOptionId(), newStatus); } + + @Override + protected boolean isPartiallyPaid(List childrenStatusList) { + return childrenStatusList.contains(InstallmentStatus.PAID) && + (childrenStatusList.contains(InstallmentStatus.UNPAID) || childrenStatusList.contains(InstallmentStatus.EXPIRED)); + } } diff --git a/src/test/java/it/gov/pagopa/pu/debtpositions/service/statusalign/debtposition/DebtPositionStatusCheckerTest.java b/src/test/java/it/gov/pagopa/pu/debtpositions/service/statusalign/debtposition/DebtPositionStatusCheckerTest.java index afe185b..0efc8c8 100644 --- a/src/test/java/it/gov/pagopa/pu/debtpositions/service/statusalign/debtposition/DebtPositionStatusCheckerTest.java +++ b/src/test/java/it/gov/pagopa/pu/debtpositions/service/statusalign/debtposition/DebtPositionStatusCheckerTest.java @@ -44,21 +44,11 @@ void testCalculateNewStatus_ToSync() { } /** - * Test if the status is PARTIALLY_PAID when there is at least one PAID and one UNPAID paymentOption. + * Test if the status is PARTIALLY_PAID when there is at least one PARTIALLY_PAID paymentOption. */ @Test - void testCalculateNewStatus_PartiallyPaid() { - List paymentOptionStatusList = List.of(PaymentOptionStatus.PAID, PaymentOptionStatus.UNPAID); - DebtPositionStatus result = checker.calculateNewStatus(paymentOptionStatusList); - assertEquals(DebtPositionStatus.PARTIALLY_PAID, result); - } - - /** - * Test if the status is PARTIALLY_PAID when there is at least one PAID and one EXPIRED paymentOption. - */ - @Test - void testDeterminePaymentOptionStatus_PartiallyPaid2() { - List paymentOptionStatusList = List.of(PaymentOptionStatus.PAID, PaymentOptionStatus.EXPIRED); + void testDeterminePaymentOptionStatus_PartiallyPaid() { + List paymentOptionStatusList = List.of(PaymentOptionStatus.EXPIRED, PaymentOptionStatus.PARTIALLY_PAID); DebtPositionStatus result = checker.calculateNewStatus(paymentOptionStatusList); assertEquals(DebtPositionStatus.PARTIALLY_PAID, result); }