réutilisation de la même commande que pour review parceque sinon trop long pour changer subscriptiondurationdesired en desiredsubscriptionduration

This commit is contained in:
2026-06-14 00:20:14 +02:00
parent 2c33798c83
commit 5adb10101f
10 changed files with 33 additions and 33 deletions
@@ -1,13 +1,13 @@
package fr.iut_fbleau.but3.dev62.mylibrary.subscription; package fr.iut_fbleau.but3.dev62.mylibrary.subscription;
public enum SubscriptionDurationDesired { public enum DesiredSubscriptionDuration {
THREE(3), THREE(3),
SIX(6), SIX(6),
TWELVE(12); TWELVE(12);
private final Integer value; private final Integer value;
SubscriptionDurationDesired(Integer value) { DesiredSubscriptionDuration(Integer value) {
this.value = value; this.value = value;
} }
@@ -13,7 +13,7 @@ public class SubscriptionDTO {
private UUID subscriptionId; private UUID subscriptionId;
private UUID customerId; private UUID customerId;
private Integer subscriptionDurationDesired; private Integer desiredSubscriptionDuration;
private PaymentMethod paymentMethod; private PaymentMethod paymentMethod;
private LocalDate desiredStartDate; private LocalDate desiredStartDate;
private LocalDate startDate; private LocalDate startDate;
@@ -2,5 +2,5 @@ package fr.iut_fbleau.but3.dev62.mylibrary.subscription;
import java.time.LocalDate; import java.time.LocalDate;
public record SubscriptionInfo(Integer subscriptionDurationDesired, LocalDate desiredStartDate) { public record SubscriptionInfo(Integer desiredSubscriptionDuration, LocalDate desiredStartDate) {
} }
@@ -19,11 +19,11 @@ public class SubscriptionConverter {
.details(newPaymentMethod.details()) .details(newPaymentMethod.details())
.build(); .build();
return Subscription.builder() return Subscription.builder()
.subscriptionDurationDesired(newSubscription.subscriptionDurationDesired()) .desiredSubscriptionDuration(newSubscription.desiredSubscriptionDuration())
.paymentMethod(paymentMethod) .paymentMethod(paymentMethod)
.desiredStartDate(newSubscription.desiredStartDate()) .desiredStartDate(newSubscription.desiredStartDate())
.startDate(newSubscription.desiredStartDate()) .startDate(newSubscription.desiredStartDate())
.endDate(newSubscription.desiredStartDate().plusMonths(newSubscription.subscriptionDurationDesired())) .endDate(newSubscription.desiredStartDate().plusMonths(newSubscription.desiredSubscriptionDuration()))
.monthlyAmount(0) .monthlyAmount(0)
.build(); .build();
} }
@@ -32,7 +32,7 @@ public class SubscriptionConverter {
return SubscriptionDTO.builder() return SubscriptionDTO.builder()
.subscriptionId(subscription.getSubscriptionId()) .subscriptionId(subscription.getSubscriptionId())
.customerId(subscription.getCustomerId()) .customerId(subscription.getCustomerId())
.subscriptionDurationDesired(subscription.getSubscriptionDurationDesired()) .desiredSubscriptionDuration(subscription.getDesiredSubscriptionDuration())
.paymentMethod(subscription.getPaymentMethod()) .paymentMethod(subscription.getPaymentMethod())
.desiredStartDate(subscription.getDesiredStartDate()) .desiredStartDate(subscription.getDesiredStartDate())
.startDate(subscription.getStartDate()) .startDate(subscription.getStartDate())
@@ -12,7 +12,7 @@ public class Subscription {
private UUID subscriptionId; private UUID subscriptionId;
private UUID customerId; private UUID customerId;
private Integer subscriptionDurationDesired; private Integer desiredSubscriptionDuration;
private PaymentMethod paymentMethod; private PaymentMethod paymentMethod;
private LocalDate desiredStartDate; private LocalDate desiredStartDate;
private LocalDate startDate; private LocalDate startDate;
@@ -34,7 +34,7 @@ public class Subscription {
} }
public void setEndDate(){ public void setEndDate(){
this.endDate = this.desiredStartDate.plusMonths(this.subscriptionDurationDesired); this.endDate = this.desiredStartDate.plusMonths(this.desiredSubscriptionDuration);
} }
public void setDateSubscription(){ public void setDateSubscription(){
@@ -8,7 +8,7 @@ import java.util.Set;
public class SubscriptionValidator { 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 SUBSCRIPTION_DURATION_DESIRED_IS_NOT_VALID = "desiredSubscriptionDuration 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"; public static final String DESIRED_START_DATE_CANNOT_BE_BEFORE_TODAY = "desiredStartDate cannot be before today";
private SubscriptionValidator() { private SubscriptionValidator() {
@@ -23,7 +23,7 @@ public class SubscriptionValidator {
private static void validateSubscriptionDurationDesired(SubscriptionInfo newSubscription) private static void validateSubscriptionDurationDesired(SubscriptionInfo newSubscription)
throws NotValidSubscriptionException { throws NotValidSubscriptionException {
Set<Integer> VALID_DURATIONS = Set.of(3, 6, 12); Set<Integer> VALID_DURATIONS = Set.of(3, 6, 12);
if (!VALID_DURATIONS.contains(newSubscription.subscriptionDurationDesired())) { if (!VALID_DURATIONS.contains(newSubscription.desiredSubscriptionDuration())) {
throw new NotValidSubscriptionException(SUBSCRIPTION_DURATION_DESIRED_IS_NOT_VALID);} throw new NotValidSubscriptionException(SUBSCRIPTION_DURATION_DESIRED_IS_NOT_VALID);}
} }
@@ -26,7 +26,7 @@ public class SubscriptionConverterTest {
// Given // Given
PaymentMethodInfo paymentMethodInfo = new PaymentMethodInfo(PaymentType.CB.name(), "Maxime Lebreton"); PaymentMethodInfo paymentMethodInfo = new PaymentMethodInfo(PaymentType.CB.name(), "Maxime Lebreton");
LocalDate desiredStartDate = LocalDate.of(2026, 6, 24); LocalDate desiredStartDate = LocalDate.of(2026, 6, 24);
SubscriptionInfo subscriptionInfo = new SubscriptionInfo(SubscriptionDurationDesired.THREE.getValue(), desiredStartDate); SubscriptionInfo subscriptionInfo = new SubscriptionInfo(DesiredSubscriptionDuration.THREE.getValue(), desiredStartDate);
LocalDate estimateEndDate = LocalDate.of(2026, 9, 24); LocalDate estimateEndDate = LocalDate.of(2026, 9, 24);
// When // When
@@ -34,7 +34,7 @@ public class SubscriptionConverterTest {
// Then // Then
assertNotNull(result); assertNotNull(result);
assertEquals(subscriptionInfo.subscriptionDurationDesired(), result.getSubscriptionDurationDesired()); assertEquals(subscriptionInfo.desiredSubscriptionDuration(), result.getDesiredSubscriptionDuration());
assertEquals(paymentMethodInfo.paymentType(), result.getPaymentMethod().getPaymentType()); assertEquals(paymentMethodInfo.paymentType(), result.getPaymentMethod().getPaymentType());
assertEquals(paymentMethodInfo.details(), result.getPaymentMethod().getDetails()); assertEquals(paymentMethodInfo.details(), result.getPaymentMethod().getDetails());
assertEquals(subscriptionInfo.desiredStartDate(), result.getDesiredStartDate()); assertEquals(subscriptionInfo.desiredStartDate(), result.getDesiredStartDate());
@@ -60,7 +60,7 @@ public class SubscriptionConverterTest {
Subscription subscription = Subscription.builder() Subscription subscription = Subscription.builder()
.subscriptionId(UUID.randomUUID()) .subscriptionId(UUID.randomUUID())
.customerId(UUID.randomUUID()) .customerId(UUID.randomUUID())
.subscriptionDurationDesired(SubscriptionDurationDesired.THREE.getValue()) .desiredSubscriptionDuration(DesiredSubscriptionDuration.THREE.getValue())
.paymentMethod(paymentMethod) .paymentMethod(paymentMethod)
.desiredStartDate(desiredStartDate) .desiredStartDate(desiredStartDate)
.startDate(desiredStartDate) .startDate(desiredStartDate)
@@ -73,7 +73,7 @@ public class SubscriptionConverterTest {
assertNotNull(result); assertNotNull(result);
assertEquals(subscription.getSubscriptionId(), result.getSubscriptionId()); assertEquals(subscription.getSubscriptionId(), result.getSubscriptionId());
assertEquals(subscription.getCustomerId(), result.getCustomerId()); assertEquals(subscription.getCustomerId(), result.getCustomerId());
assertEquals(subscription.getSubscriptionDurationDesired(), result.getSubscriptionDurationDesired()); assertEquals(subscription.getDesiredSubscriptionDuration(), result.getDesiredSubscriptionDuration());
assertEquals(subscription.getPaymentMethod().getPaymentType(), result.getPaymentMethod().getPaymentType()); assertEquals(subscription.getPaymentMethod().getPaymentType(), result.getPaymentMethod().getPaymentType());
assertEquals(subscription.getPaymentMethod().getDetails(), result.getPaymentMethod().getDetails()); assertEquals(subscription.getPaymentMethod().getDetails(), result.getPaymentMethod().getDetails());
assertEquals(subscription.getDesiredStartDate(), result.getDesiredStartDate()); assertEquals(subscription.getDesiredStartDate(), result.getDesiredStartDate());
@@ -95,7 +95,7 @@ public class SubscriptionConverterTest {
Subscription subscription = Subscription.builder() Subscription subscription = Subscription.builder()
.subscriptionId(UUID.randomUUID()) .subscriptionId(UUID.randomUUID())
.customerId(UUID.randomUUID()) .customerId(UUID.randomUUID())
.subscriptionDurationDesired(SubscriptionDurationDesired.THREE.getValue()) .desiredSubscriptionDuration(DesiredSubscriptionDuration.THREE.getValue())
.paymentMethod(paymentMethod) .paymentMethod(paymentMethod)
.desiredStartDate(desiredStartDate) .desiredStartDate(desiredStartDate)
.startDate(desiredStartDate) .startDate(desiredStartDate)
@@ -115,7 +115,7 @@ public class SubscriptionConverterTest {
void shouldPreserveEmptyStrings() { void shouldPreserveEmptyStrings() {
PaymentMethodInfo paymentMethodInfo = new PaymentMethodInfo(PaymentType.CB.name(), ""); PaymentMethodInfo paymentMethodInfo = new PaymentMethodInfo(PaymentType.CB.name(), "");
LocalDate desiredStartDate = LocalDate.of(2026, 6, 24); LocalDate desiredStartDate = LocalDate.of(2026, 6, 24);
SubscriptionInfo subscriptionInfo = new SubscriptionInfo(SubscriptionDurationDesired.THREE.getValue(), desiredStartDate); SubscriptionInfo subscriptionInfo = new SubscriptionInfo(DesiredSubscriptionDuration.THREE.getValue(), desiredStartDate);
Subscription domainResult = SubscriptionConverter.toDomain(subscriptionInfo, paymentMethodInfo); Subscription domainResult = SubscriptionConverter.toDomain(subscriptionInfo, paymentMethodInfo);
SubscriptionDTO dtoResult = SubscriptionConverter.toDTO(domainResult); SubscriptionDTO dtoResult = SubscriptionConverter.toDTO(domainResult);
@@ -1,7 +1,7 @@
package fr.iut_fbleau.but3.dev62.mylibrary.subscription.entity; package fr.iut_fbleau.but3.dev62.mylibrary.subscription.entity;
import fr.iut_fbleau.but3.dev62.mylibrary.subscription.PaymentType; import fr.iut_fbleau.but3.dev62.mylibrary.subscription.PaymentType;
import fr.iut_fbleau.but3.dev62.mylibrary.subscription.SubscriptionDurationDesired; import fr.iut_fbleau.but3.dev62.mylibrary.subscription.DesiredSubscriptionDuration;
import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
@@ -18,7 +18,7 @@ public class SubscriptionTest {
void testSubscriptionBuilder() { void testSubscriptionBuilder() {
UUID subscriptionId = UUID.randomUUID(); UUID subscriptionId = UUID.randomUUID();
UUID customerId = UUID.randomUUID(); UUID customerId = UUID.randomUUID();
Integer subscriptionDurationDesired = SubscriptionDurationDesired.THREE.getValue(); Integer desiredSubscriptionDuration = DesiredSubscriptionDuration.THREE.getValue();
String paymentType = PaymentType.CB.name(); String paymentType = PaymentType.CB.name();
Object details = new Object(); Object details = new Object();
details = "Maxime Lebreton"; details = "Maxime Lebreton";
@@ -34,7 +34,7 @@ public class SubscriptionTest {
Subscription subscription = Subscription.builder() Subscription subscription = Subscription.builder()
.subscriptionId(subscriptionId) .subscriptionId(subscriptionId)
.customerId(customerId) .customerId(customerId)
.subscriptionDurationDesired(subscriptionDurationDesired) .desiredSubscriptionDuration(desiredSubscriptionDuration)
.paymentMethod(paymentMethod) .paymentMethod(paymentMethod)
.desiredStartDate(desiredStartDate) .desiredStartDate(desiredStartDate)
.startDate(startDate) .startDate(startDate)
@@ -44,7 +44,7 @@ public class SubscriptionTest {
assertEquals(subscriptionId, subscription.getSubscriptionId()); assertEquals(subscriptionId, subscription.getSubscriptionId());
assertEquals(customerId, subscription.getCustomerId()); assertEquals(customerId, subscription.getCustomerId());
assertEquals(subscriptionDurationDesired, subscription.getSubscriptionDurationDesired()); assertEquals(desiredSubscriptionDuration, subscription.getDesiredSubscriptionDuration());
assertEquals(paymentType, paymentMethod.getPaymentType()); assertEquals(paymentType, paymentMethod.getPaymentType());
assertEquals(details, paymentMethod.getDetails()); assertEquals(details, paymentMethod.getDetails());
assertEquals(desiredStartDate, subscription.getDesiredStartDate()); assertEquals(desiredStartDate, subscription.getDesiredStartDate());
@@ -92,12 +92,12 @@ public class SubscriptionTest {
} }
@Test @Test
@DisplayName("setEndDate should instantiate EndDate as the same value as the variable desiredStartDate + subscriptionDurationDesired") @DisplayName("setEndDate should instantiate EndDate as the same value as the variable desiredStartDate + desiredSubscriptionDuration")
void testSetEndDate() { void testSetEndDate() {
LocalDate desiredStartDate = LocalDate.of(2026, 6, 24); LocalDate desiredStartDate = LocalDate.of(2026, 6, 24);
LocalDate estimateEndDate = LocalDate.of(2026, 9, 24); LocalDate estimateEndDate = LocalDate.of(2026, 9, 24);
Subscription subscription = Subscription.builder() Subscription subscription = Subscription.builder()
.subscriptionDurationDesired(SubscriptionDurationDesired.THREE.getValue()) .desiredSubscriptionDuration(DesiredSubscriptionDuration.THREE.getValue())
.desiredStartDate(desiredStartDate) .desiredStartDate(desiredStartDate)
.build(); .build();
@@ -113,7 +113,7 @@ public class SubscriptionTest {
LocalDate desiredStartDate = LocalDate.of(2026, 6, 24); LocalDate desiredStartDate = LocalDate.of(2026, 6, 24);
LocalDate estimateEndDate = LocalDate.of(2026, 9, 24); LocalDate estimateEndDate = LocalDate.of(2026, 9, 24);
Subscription subscription = Subscription.builder() Subscription subscription = Subscription.builder()
.subscriptionDurationDesired(SubscriptionDurationDesired.THREE.getValue()) .desiredSubscriptionDuration(DesiredSubscriptionDuration.THREE.getValue())
.desiredStartDate(desiredStartDate) .desiredStartDate(desiredStartDate)
.build(); .build();
@@ -23,7 +23,7 @@ public class NotValidSubscriptionExceptionTest {
@ParameterizedTest @ParameterizedTest
@ValueSource(strings = { @ValueSource(strings = {
"subscriptionDurationDesired will be 3, 6 or 12 by the ENUM file SubscriptionDurationDesired", "desiredSubscriptionDuration will be 3, 6 or 12 by the ENUM file SubscriptionDurationDesired",
"desiredStartDate cannot be before today" "desiredStartDate cannot be before today"
}) })
@DisplayName("Exception should handle different validation messages") @DisplayName("Exception should handle different validation messages")
@@ -1,6 +1,6 @@
package fr.iut_fbleau.but3.dev62.mylibrary.subscription.validator; 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.DesiredSubscriptionDuration;
import fr.iut_fbleau.but3.dev62.mylibrary.subscription.SubscriptionInfo; import fr.iut_fbleau.but3.dev62.mylibrary.subscription.SubscriptionInfo;
import fr.iut_fbleau.but3.dev62.mylibrary.subscription.exception.NotValidSubscriptionException; import fr.iut_fbleau.but3.dev62.mylibrary.subscription.exception.NotValidSubscriptionException;
import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.DisplayName;
@@ -21,7 +21,7 @@ public class SubscriptionValidatorTest {
@DisplayName("Should validate subscription with valid data") @DisplayName("Should validate subscription with valid data")
void testValidateValidSubscription() { void testValidateValidSubscription() {
LocalDate desiredStartDate = LocalDate.of(2026, 6, 24); LocalDate desiredStartDate = LocalDate.of(2026, 6, 24);
SubscriptionInfo validSubscription = new SubscriptionInfo(SubscriptionDurationDesired.THREE.getValue(), desiredStartDate); SubscriptionInfo validSubscription = new SubscriptionInfo(DesiredSubscriptionDuration.THREE.getValue(), desiredStartDate);
assertDoesNotThrow(() -> SubscriptionValidator.validate(validSubscription)); assertDoesNotThrow(() -> SubscriptionValidator.validate(validSubscription));
} }
@@ -31,9 +31,9 @@ public class SubscriptionValidatorTest {
class SubscriptionDurationDesiredValidationTests { class SubscriptionDurationDesiredValidationTests {
@ParameterizedTest @ParameterizedTest
@EnumSource(value = SubscriptionDurationDesired.class) @EnumSource(value = DesiredSubscriptionDuration.class)
void testValidateSubscriptionDurationDesired(SubscriptionDurationDesired subscriptionDurationDesired) { void testValidateSubscriptionDurationDesired(DesiredSubscriptionDuration desiredSubscriptionDuration) {
Integer validSubscriptionDurationDesired = subscriptionDurationDesired.getValue(); Integer validSubscriptionDurationDesired = desiredSubscriptionDuration.getValue();
LocalDate desiredStartDate = LocalDate.of(2026, 6, 24); LocalDate desiredStartDate = LocalDate.of(2026, 6, 24);
SubscriptionInfo validSubscription = new SubscriptionInfo(validSubscriptionDurationDesired, desiredStartDate); SubscriptionInfo validSubscription = new SubscriptionInfo(validSubscriptionDurationDesired, desiredStartDate);
@@ -41,7 +41,7 @@ public class SubscriptionValidatorTest {
} }
@Test @Test
@DisplayName("Should throw exception when subscriptionDurationDesired is not 3, 6 or 12") @DisplayName("Should throw exception when desiredSubscriptionDuration is not 3, 6 or 12")
void testNotValidateSubscriptionDurationDesired() { void testNotValidateSubscriptionDurationDesired() {
Integer notValidSubscriptionDurationDesired = 1 ; Integer notValidSubscriptionDurationDesired = 1 ;
LocalDate desiredStartDate = LocalDate.of(2026, 6, 24); LocalDate desiredStartDate = LocalDate.of(2026, 6, 24);
@@ -63,7 +63,7 @@ public class SubscriptionValidatorTest {
@DisplayName("Should validate when desiredStartDate is before today") @DisplayName("Should validate when desiredStartDate is before today")
void testValidateDesiredStartDate() { void testValidateDesiredStartDate() {
LocalDate desiredStartDate = LocalDate.now(); LocalDate desiredStartDate = LocalDate.now();
SubscriptionInfo validSubscription = new SubscriptionInfo(SubscriptionDurationDesired.THREE.getValue(), desiredStartDate); SubscriptionInfo validSubscription = new SubscriptionInfo(DesiredSubscriptionDuration.THREE.getValue(), desiredStartDate);
assertDoesNotThrow(() -> SubscriptionValidator.validate(validSubscription)); assertDoesNotThrow(() -> SubscriptionValidator.validate(validSubscription));
} }
@@ -72,7 +72,7 @@ public class SubscriptionValidatorTest {
@DisplayName("Should throw exception when desiredStartDate is before today") @DisplayName("Should throw exception when desiredStartDate is before today")
void testNotValidateDesiredStartDate() { void testNotValidateDesiredStartDate() {
LocalDate desiredStartDate = LocalDate.of(2026, 3, 24); LocalDate desiredStartDate = LocalDate.of(2026, 3, 24);
SubscriptionInfo validSubscription = new SubscriptionInfo(SubscriptionDurationDesired.THREE.getValue(), desiredStartDate); SubscriptionInfo validSubscription = new SubscriptionInfo(DesiredSubscriptionDuration.THREE.getValue(), desiredStartDate);
NotValidSubscriptionException exception = assertThrows( NotValidSubscriptionException exception = assertThrows(
NotValidSubscriptionException.class, NotValidSubscriptionException.class,