From 3deb17a4c7d114efbec664de0e758024631f5ed7 Mon Sep 17 00:00:00 2001 From: felix-vi Date: Sun, 14 Jun 2026 14:38:27 +0200 Subject: [PATCH] =?UTF-8?q?:white=5Fcheck=5Fmark:=20r=C3=A9ussite=20des=20?= =?UTF-8?q?tests?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../subscription/SubscriptionRepository.java | 62 +++++++++++++++++++ .../SubscriptionRepositoryTest.java | 11 ++-- 2 files changed, 68 insertions(+), 5 deletions(-) create mode 100644 src/main/java/fr/iut_fbleau/but3/dev62/mylibrary/subscription/SubscriptionRepository.java diff --git a/src/main/java/fr/iut_fbleau/but3/dev62/mylibrary/subscription/SubscriptionRepository.java b/src/main/java/fr/iut_fbleau/but3/dev62/mylibrary/subscription/SubscriptionRepository.java new file mode 100644 index 0000000..ddd126a --- /dev/null +++ b/src/main/java/fr/iut_fbleau/but3/dev62/mylibrary/subscription/SubscriptionRepository.java @@ -0,0 +1,62 @@ +package fr.iut_fbleau.but3.dev62.mylibrary.subscription; + +import fr.iut_fbleau.but3.dev62.mylibrary.subscription.entity.Subscription; + +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; +import java.util.UUID; + +public class SubscriptionRepository { + + private final List subscriptions = new ArrayList<>(); + + public List findAll() { + + return subscriptions; + } + + public void deleteAll() { + + subscriptions.clear(); + } + + public Subscription save(Subscription newSubscription) { + Optional optionalSubscriptionWithSameSubscriptionId = this.findBySubscriptionId(newSubscription.getSubscriptionId()); + optionalSubscriptionWithSameSubscriptionId.ifPresent(subscriptions::remove); + this.subscriptions.add(newSubscription); + return newSubscription; + } + + public List FindByCustomerId(UUID customerUUID) { + return this.subscriptions.stream() + .filter(subscription -> subscription.getCustomerId().equals(customerUUID)) + .toList(); + } + + public Optional findBySubscriptionId(UUID subscriptionUUID) { + return this.subscriptions.stream() + .filter(subscription -> subscription.getSubscriptionId().equals(subscriptionUUID)) + .findFirst(); + } + + public boolean existsByCustomerId(UUID customerUUID) { + return this.subscriptions.stream() + .anyMatch(review -> review.getCustomerId().equals(customerUUID)); + } + + public boolean existsBySubscriptionId(UUID subscriptionUUID) { + return this.subscriptions.stream() + .anyMatch(subscription -> subscription.getSubscriptionId().equals(subscriptionUUID)); + } + + public void deleteByCustomerId(UUID customerUUID) { + + this.subscriptions.removeIf(subscription -> subscription.getCustomerId().equals(customerUUID)); + } + + public void delete(Subscription subscription) { + + this.subscriptions.remove(subscription); + } +} diff --git a/src/test/java/fr/iut_fbleau/but3/dev62/mylibrary/subscription/repository/SubscriptionRepositoryTest.java b/src/test/java/fr/iut_fbleau/but3/dev62/mylibrary/subscription/repository/SubscriptionRepositoryTest.java index ef3735f..3904bcc 100644 --- a/src/test/java/fr/iut_fbleau/but3/dev62/mylibrary/subscription/repository/SubscriptionRepositoryTest.java +++ b/src/test/java/fr/iut_fbleau/but3/dev62/mylibrary/subscription/repository/SubscriptionRepositoryTest.java @@ -1,8 +1,8 @@ package fr.iut_fbleau.but3.dev62.mylibrary.subscription.repository; -import fr.iut_fbleau.but3.dev62.mylibrary.customer.entity.Customer; import fr.iut_fbleau.but3.dev62.mylibrary.subscription.DesiredSubscriptionDuration; import fr.iut_fbleau.but3.dev62.mylibrary.subscription.PaymentType; +import fr.iut_fbleau.but3.dev62.mylibrary.subscription.SubscriptionRepository; import fr.iut_fbleau.but3.dev62.mylibrary.subscription.entity.PaymentMethod; import fr.iut_fbleau.but3.dev62.mylibrary.subscription.entity.Subscription; import org.junit.jupiter.api.BeforeEach; @@ -150,15 +150,16 @@ public class SubscriptionRepositoryTest { void testFindAll() { List subscriptions = repository.findAll(); - assertEquals(2, subscriptions.size()); + assertEquals(3, subscriptions.size()); assertTrue(subscriptions.contains(subscription1)); assertTrue(subscriptions.contains(subscription2)); + assertTrue(subscriptions.contains(subscription3)); } @Test @DisplayName("FindBySubscriptionId should return subscription with matching ID") void testFindBySubscriptionId() { - Optional foundSubscription = repository.FindBySubscriptionId(subscription1.getSubscriptionId()); + Optional foundSubscription = repository.findBySubscriptionId(subscription1.getSubscriptionId()); assertTrue(foundSubscription.isPresent()); assertEquals(subscription1.getStartDate(), foundSubscription.get().getStartDate()); @@ -170,7 +171,7 @@ public class SubscriptionRepositoryTest { void testFindBySubscriptionIdNotFound() { UUID nonExistentSubscriptionId = UUID.randomUUID(); - Optional foundSubscription = repository.FindBySubscriptionId(nonExistentSubscriptionId); + Optional foundSubscription = repository.findBySubscriptionId(nonExistentSubscriptionId); assertTrue(foundSubscription.isEmpty()); } @@ -258,7 +259,7 @@ public class SubscriptionRepositoryTest { @Test @DisplayName("DeleteAll should remove all subscriptions of a customer") - void testDeleteAll() { + void testDeleteAllSubscriptionOfACustomer() { repository.deleteByCustomerId(subscription2.getCustomerId()); List subscriptions = repository.findAll();