From 2c33798c8345771d69596a5a7f3aa09a3476e0e1 Mon Sep 17 00:00:00 2001 From: aubert Date: Sun, 14 Jun 2026 00:13:28 +0200 Subject: [PATCH] =?UTF-8?q?:white=5Fcheck=5Fmark:=20r=C3=A9ussite=20de=20t?= =?UTF-8?q?ous=20les=20tests?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../NotValidPaymentMethodException.java | 8 +++++ .../NotValidSubscriptionException.java | 8 +++++ .../validator/PaymentMethodValidator.java | 27 ++++++++++++++ .../validator/SubscriptionValidator.java | 36 +++++++++++++++++++ .../validator/PaymentMethodValidatorTest.java | 3 +- .../validator/SubscriptionValidatorTest.java | 3 +- 6 files changed, 83 insertions(+), 2 deletions(-) create mode 100644 src/main/java/fr/iut_fbleau/but3/dev62/mylibrary/subscription/exception/NotValidPaymentMethodException.java create mode 100644 src/main/java/fr/iut_fbleau/but3/dev62/mylibrary/subscription/exception/NotValidSubscriptionException.java create mode 100644 src/main/java/fr/iut_fbleau/but3/dev62/mylibrary/subscription/validator/PaymentMethodValidator.java create mode 100644 src/main/java/fr/iut_fbleau/but3/dev62/mylibrary/subscription/validator/SubscriptionValidator.java diff --git a/src/main/java/fr/iut_fbleau/but3/dev62/mylibrary/subscription/exception/NotValidPaymentMethodException.java b/src/main/java/fr/iut_fbleau/but3/dev62/mylibrary/subscription/exception/NotValidPaymentMethodException.java new file mode 100644 index 0000000..7304eb9 --- /dev/null +++ b/src/main/java/fr/iut_fbleau/but3/dev62/mylibrary/subscription/exception/NotValidPaymentMethodException.java @@ -0,0 +1,8 @@ +package fr.iut_fbleau.but3.dev62.mylibrary.subscription.exception; + +public class NotValidPaymentMethodException extends RuntimeException { + + public NotValidPaymentMethodException(String message) { + super(message); + } +} diff --git a/src/main/java/fr/iut_fbleau/but3/dev62/mylibrary/subscription/exception/NotValidSubscriptionException.java b/src/main/java/fr/iut_fbleau/but3/dev62/mylibrary/subscription/exception/NotValidSubscriptionException.java new file mode 100644 index 0000000..27829f6 --- /dev/null +++ b/src/main/java/fr/iut_fbleau/but3/dev62/mylibrary/subscription/exception/NotValidSubscriptionException.java @@ -0,0 +1,8 @@ +package fr.iut_fbleau.but3.dev62.mylibrary.subscription.exception; + +public class NotValidSubscriptionException extends RuntimeException { + + public NotValidSubscriptionException(String message) { + super(message); + } +} diff --git a/src/main/java/fr/iut_fbleau/but3/dev62/mylibrary/subscription/validator/PaymentMethodValidator.java b/src/main/java/fr/iut_fbleau/but3/dev62/mylibrary/subscription/validator/PaymentMethodValidator.java new file mode 100644 index 0000000..a9c9590 --- /dev/null +++ b/src/main/java/fr/iut_fbleau/but3/dev62/mylibrary/subscription/validator/PaymentMethodValidator.java @@ -0,0 +1,27 @@ +package fr.iut_fbleau.but3.dev62.mylibrary.subscription.validator; + +import fr.iut_fbleau.but3.dev62.mylibrary.subscription.PaymentMethodInfo; +import fr.iut_fbleau.but3.dev62.mylibrary.subscription.exception.NotValidPaymentMethodException; + +import java.util.Set; + +public class PaymentMethodValidator { + + public static final String MODE_PAIEMENT_IS_NOT_VALID = "paymentType is not valid"; + + private PaymentMethodValidator() { + + } + + public static void validate(PaymentMethodInfo newPaymentMethod) + throws NotValidPaymentMethodException { + validatePaymentType(newPaymentMethod); + } + + private static void validatePaymentType(PaymentMethodInfo newPaymentMethod) + throws NotValidPaymentMethodException { + Set Valid_Payment_Type = Set.of("CB", "PAYPAL"); + if (!Valid_Payment_Type.contains(newPaymentMethod.paymentType())) { + throw new NotValidPaymentMethodException(MODE_PAIEMENT_IS_NOT_VALID);} + } +} diff --git a/src/main/java/fr/iut_fbleau/but3/dev62/mylibrary/subscription/validator/SubscriptionValidator.java b/src/main/java/fr/iut_fbleau/but3/dev62/mylibrary/subscription/validator/SubscriptionValidator.java new file mode 100644 index 0000000..7dd651f --- /dev/null +++ b/src/main/java/fr/iut_fbleau/but3/dev62/mylibrary/subscription/validator/SubscriptionValidator.java @@ -0,0 +1,36 @@ +package fr.iut_fbleau.but3.dev62.mylibrary.subscription.validator; + +import fr.iut_fbleau.but3.dev62.mylibrary.subscription.SubscriptionInfo; +import fr.iut_fbleau.but3.dev62.mylibrary.subscription.exception.NotValidSubscriptionException; + +import java.time.LocalDate; +import java.util.Set; + +public class SubscriptionValidator { + + public static final String SUBSCRIPTION_DURATION_DESIRED_IS_NOT_VALID = "subscriptionDurationDesired will be 3, 6 or 12 by the ENUM file SubscriptionDurationDesired"; + public static final String DESIRED_START_DATE_CANNOT_BE_BEFORE_TODAY = "desiredStartDate cannot be before today"; + + private SubscriptionValidator() { + + } + + public static void validate(SubscriptionInfo newSubscription) throws NotValidSubscriptionException { + validateDesiredStartDate(newSubscription); + validateSubscriptionDurationDesired(newSubscription); + } + + private static void validateSubscriptionDurationDesired(SubscriptionInfo newSubscription) + throws NotValidSubscriptionException { + Set VALID_DURATIONS = Set.of(3, 6, 12); + if (!VALID_DURATIONS.contains(newSubscription.subscriptionDurationDesired())) { + throw new NotValidSubscriptionException(SUBSCRIPTION_DURATION_DESIRED_IS_NOT_VALID);} + } + + private static void validateDesiredStartDate(SubscriptionInfo newSubscription) + throws NotValidSubscriptionException { + if (newSubscription.desiredStartDate().isBefore(LocalDate.now())) { + throw new NotValidSubscriptionException(DESIRED_START_DATE_CANNOT_BE_BEFORE_TODAY); + } + } +} diff --git a/src/test/java/fr/iut_fbleau/but3/dev62/mylibrary/subscription/validator/PaymentMethodValidatorTest.java b/src/test/java/fr/iut_fbleau/but3/dev62/mylibrary/subscription/validator/PaymentMethodValidatorTest.java index 8ed39e9..5dc10be 100644 --- a/src/test/java/fr/iut_fbleau/but3/dev62/mylibrary/subscription/validator/PaymentMethodValidatorTest.java +++ b/src/test/java/fr/iut_fbleau/but3/dev62/mylibrary/subscription/validator/PaymentMethodValidatorTest.java @@ -2,6 +2,7 @@ package fr.iut_fbleau.but3.dev62.mylibrary.subscription.validator; import fr.iut_fbleau.but3.dev62.mylibrary.subscription.PaymentMethodInfo; import fr.iut_fbleau.but3.dev62.mylibrary.subscription.PaymentType; +import fr.iut_fbleau.but3.dev62.mylibrary.subscription.exception.NotValidPaymentMethodException; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; @@ -44,7 +45,7 @@ public class PaymentMethodValidatorTest { () -> PaymentMethodValidator.validate(invalidPaymentMethod) ); - assertEquals(PaymentMethodValidator.MODE_PAIEMENT_IS_NOT_VALIDE, exception.getMessage()); + assertEquals(PaymentMethodValidator.MODE_PAIEMENT_IS_NOT_VALID, exception.getMessage()); } } } diff --git a/src/test/java/fr/iut_fbleau/but3/dev62/mylibrary/subscription/validator/SubscriptionValidatorTest.java b/src/test/java/fr/iut_fbleau/but3/dev62/mylibrary/subscription/validator/SubscriptionValidatorTest.java index c9d3d64..f5e0c91 100644 --- a/src/test/java/fr/iut_fbleau/but3/dev62/mylibrary/subscription/validator/SubscriptionValidatorTest.java +++ b/src/test/java/fr/iut_fbleau/but3/dev62/mylibrary/subscription/validator/SubscriptionValidatorTest.java @@ -2,6 +2,7 @@ package fr.iut_fbleau.but3.dev62.mylibrary.subscription.validator; import fr.iut_fbleau.but3.dev62.mylibrary.subscription.SubscriptionDurationDesired; import fr.iut_fbleau.but3.dev62.mylibrary.subscription.SubscriptionInfo; +import fr.iut_fbleau.but3.dev62.mylibrary.subscription.exception.NotValidSubscriptionException; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; @@ -50,7 +51,7 @@ public class SubscriptionValidatorTest { NotValidSubscriptionException.class, () -> SubscriptionValidator.validate(invalidSubscription) ); - assertEquals(SubscriptionValidator.SUBSCRIPTION_DURATION_DESIRED_IS_NOT_VALIDE, exception.getMessage()); + assertEquals(SubscriptionValidator.SUBSCRIPTION_DURATION_DESIRED_IS_NOT_VALID, exception.getMessage()); } }