forked from pierront/mylibrary-template
✅ réussite des tests
This commit is contained in:
+62
@@ -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<Subscription> subscriptions = new ArrayList<>();
|
||||||
|
|
||||||
|
public List<Subscription> findAll() {
|
||||||
|
|
||||||
|
return subscriptions;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void deleteAll() {
|
||||||
|
|
||||||
|
subscriptions.clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
public Subscription save(Subscription newSubscription) {
|
||||||
|
Optional<Subscription> optionalSubscriptionWithSameSubscriptionId = this.findBySubscriptionId(newSubscription.getSubscriptionId());
|
||||||
|
optionalSubscriptionWithSameSubscriptionId.ifPresent(subscriptions::remove);
|
||||||
|
this.subscriptions.add(newSubscription);
|
||||||
|
return newSubscription;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Subscription> FindByCustomerId(UUID customerUUID) {
|
||||||
|
return this.subscriptions.stream()
|
||||||
|
.filter(subscription -> subscription.getCustomerId().equals(customerUUID))
|
||||||
|
.toList();
|
||||||
|
}
|
||||||
|
|
||||||
|
public Optional<Subscription> 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);
|
||||||
|
}
|
||||||
|
}
|
||||||
+6
-5
@@ -1,8 +1,8 @@
|
|||||||
package fr.iut_fbleau.but3.dev62.mylibrary.subscription.repository;
|
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.DesiredSubscriptionDuration;
|
||||||
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.SubscriptionRepository;
|
||||||
import fr.iut_fbleau.but3.dev62.mylibrary.subscription.entity.PaymentMethod;
|
import fr.iut_fbleau.but3.dev62.mylibrary.subscription.entity.PaymentMethod;
|
||||||
import fr.iut_fbleau.but3.dev62.mylibrary.subscription.entity.Subscription;
|
import fr.iut_fbleau.but3.dev62.mylibrary.subscription.entity.Subscription;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
@@ -150,15 +150,16 @@ public class SubscriptionRepositoryTest {
|
|||||||
void testFindAll() {
|
void testFindAll() {
|
||||||
List<Subscription> subscriptions = repository.findAll();
|
List<Subscription> subscriptions = repository.findAll();
|
||||||
|
|
||||||
assertEquals(2, subscriptions.size());
|
assertEquals(3, subscriptions.size());
|
||||||
assertTrue(subscriptions.contains(subscription1));
|
assertTrue(subscriptions.contains(subscription1));
|
||||||
assertTrue(subscriptions.contains(subscription2));
|
assertTrue(subscriptions.contains(subscription2));
|
||||||
|
assertTrue(subscriptions.contains(subscription3));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@DisplayName("FindBySubscriptionId should return subscription with matching ID")
|
@DisplayName("FindBySubscriptionId should return subscription with matching ID")
|
||||||
void testFindBySubscriptionId() {
|
void testFindBySubscriptionId() {
|
||||||
Optional<Subscription> foundSubscription = repository.FindBySubscriptionId(subscription1.getSubscriptionId());
|
Optional<Subscription> foundSubscription = repository.findBySubscriptionId(subscription1.getSubscriptionId());
|
||||||
|
|
||||||
assertTrue(foundSubscription.isPresent());
|
assertTrue(foundSubscription.isPresent());
|
||||||
assertEquals(subscription1.getStartDate(), foundSubscription.get().getStartDate());
|
assertEquals(subscription1.getStartDate(), foundSubscription.get().getStartDate());
|
||||||
@@ -170,7 +171,7 @@ public class SubscriptionRepositoryTest {
|
|||||||
void testFindBySubscriptionIdNotFound() {
|
void testFindBySubscriptionIdNotFound() {
|
||||||
UUID nonExistentSubscriptionId = UUID.randomUUID();
|
UUID nonExistentSubscriptionId = UUID.randomUUID();
|
||||||
|
|
||||||
Optional<Subscription> foundSubscription = repository.FindBySubscriptionId(nonExistentSubscriptionId);
|
Optional<Subscription> foundSubscription = repository.findBySubscriptionId(nonExistentSubscriptionId);
|
||||||
|
|
||||||
assertTrue(foundSubscription.isEmpty());
|
assertTrue(foundSubscription.isEmpty());
|
||||||
}
|
}
|
||||||
@@ -258,7 +259,7 @@ public class SubscriptionRepositoryTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
@DisplayName("DeleteAll should remove all subscriptions of a customer")
|
@DisplayName("DeleteAll should remove all subscriptions of a customer")
|
||||||
void testDeleteAll() {
|
void testDeleteAllSubscriptionOfACustomer() {
|
||||||
repository.deleteByCustomerId(subscription2.getCustomerId());
|
repository.deleteByCustomerId(subscription2.getCustomerId());
|
||||||
|
|
||||||
List<Subscription> subscriptions = repository.findAll();
|
List<Subscription> subscriptions = repository.findAll();
|
||||||
|
|||||||
Reference in New Issue
Block a user