bug5841: extended tests, checking that data mining implies premium by category

This commit is contained in:
Axel Uhl
2023-05-04 14:41:07 +02:00
parent 054168a6a1
commit 96e88694d2
@@ -5,6 +5,7 @@ import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import org.junit.Before;
import org.junit.Test;
import com.sap.sailing.domain.common.subscription.SailingSubscriptionPlan;
@@ -18,19 +19,28 @@ import com.sap.sse.security.ui.server.subscription.chargebee.ChargebeeSubscripti
import com.sap.sse.security.ui.shared.subscription.SubscriptionPlanDTO;
public class TestPlanSubscriptionRules {
@Test
public void testThatDataMiningImpliesPemiumByCategory() {
final SubscriptionPlan dataMiningArchiveYearly = SailingSubscriptionPlan.DATA_MINING_ARCHIVE_YEARLY;
final SubscriptionPlan premiumYearly = SailingSubscriptionPlan.PREMIUM_YEARLY;
final User user = mock(User.class);
final Subscription premiumSubscription = new ChargebeeSubscription("subscriptionId", premiumYearly.getId(), "customerId",
private final SubscriptionPlan dataMiningArchiveYearly = SailingSubscriptionPlan.DATA_MINING_ARCHIVE_YEARLY;
private final SubscriptionPlan premiumYearly = SailingSubscriptionPlan.PREMIUM_YEARLY;
private User user;
private Subscription premiumYearlySubscription;
private Subscription dataMiningArchiveYearlySubscription;
private SecurityService securityService;
private ChargebeeSubscriptionWriteServiceImpl service;
@Before
public void setUp() {
user = mock(User.class);
premiumYearlySubscription = new ChargebeeSubscription("subscriptionId1", premiumYearly.getId(), "customerId",
TimePoint.now(), TimePoint.now(), /* subscriptionStatus */ "active", /* paymentStatus */ "paid", "transactionType", "transactionStatus", "invoiceId",
"invoiceStatus", /* reoccuringPaymentValue */ 49, /* currencyCode */ "USD", TimePoint.now(), TimePoint.now(),
TimePoint.now(), TimePoint.now(), TimePoint.now(), /* cancelledAt */ null, TimePoint.now(), /* manualUpdatedAt */ null);
when(user.getSubscriptionByPlan(premiumYearly.getId())).thenReturn(premiumSubscription);
final SecurityService securityService = mock(SecurityService.class);
dataMiningArchiveYearlySubscription = new ChargebeeSubscription("subscriptionId2", dataMiningArchiveYearly.getId(), "customerId",
TimePoint.now(), TimePoint.now(), /* subscriptionStatus */ "active", /* paymentStatus */ "paid", "transactionType", "transactionStatus", "invoiceId",
"invoiceStatus", /* reoccuringPaymentValue */ 49, /* currencyCode */ "USD", TimePoint.now(), TimePoint.now(),
TimePoint.now(), TimePoint.now(), TimePoint.now(), /* cancelledAt */ null, TimePoint.now(), /* manualUpdatedAt */ null);
securityService = mock(SecurityService.class);
when(securityService.getAllSubscriptionPlans()).thenReturn(SailingSubscriptionPlan.getAllInstances());
final ChargebeeSubscriptionWriteServiceImpl service = new ChargebeeSubscriptionWriteServiceImpl() {
service = new ChargebeeSubscriptionWriteServiceImpl() {
private static final long serialVersionUID = 1L;
@Override
@@ -43,6 +53,11 @@ public class TestPlanSubscriptionRules {
return securityService;
}
};
}
@Test
public void testThatPemiumDoesNotImplyDataMiningByCategory() {
when(user.getSubscriptionByPlan(premiumYearly.getId())).thenReturn(premiumYearlySubscription);
final SubscriptionPlanDTO premiumYearlyDTO = service.convertToDto(premiumYearly);
final SubscriptionPlanDTO dataMiningArchiveYearlyDTO = service.convertToDto(dataMiningArchiveYearly);
assertTrue(premiumYearlyDTO.isUserSubscribedToPlan());
@@ -50,4 +65,15 @@ public class TestPlanSubscriptionRules {
assertFalse(dataMiningArchiveYearlyDTO.isUserSubscribedToPlan());
assertFalse(dataMiningArchiveYearlyDTO.isUserSubscribedToAllPlanCategories());
}
@Test
public void testThatDataMiningImpliesPemiumByCategory() {
when(user.getSubscriptionByPlan(dataMiningArchiveYearly.getId())).thenReturn(dataMiningArchiveYearlySubscription);
final SubscriptionPlanDTO premiumYearlyDTO = service.convertToDto(premiumYearly);
final SubscriptionPlanDTO dataMiningArchiveYearlyDTO = service.convertToDto(dataMiningArchiveYearly);
assertFalse(premiumYearlyDTO.isUserSubscribedToPlan());
assertTrue(premiumYearlyDTO.isUserSubscribedToAllPlanCategories());
assertTrue(dataMiningArchiveYearlyDTO.isUserSubscribedToPlan());
assertTrue(dataMiningArchiveYearlyDTO.isUserSubscribedToAllPlanCategories());
}
}