forked from pierront/mylibrary-template
Feature/create subscription #3
+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;
|
||||
|
||||
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<Subscription> 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<Subscription> foundSubscription = repository.FindBySubscriptionId(subscription1.getSubscriptionId());
|
||||
Optional<Subscription> 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<Subscription> foundSubscription = repository.FindBySubscriptionId(nonExistentSubscriptionId);
|
||||
Optional<Subscription> 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<Subscription> subscriptions = repository.findAll();
|
||||
|
||||
Reference in New Issue
Block a user