@Test(groups = "fast") public void testDataCalc() { final DefaultPlan p0 = MockPlan.createBicycleTrialEvergreen1USD(); final DefaultPlan p1 = MockPlan.createBicycleTrialEvergreen1USD(100); final DefaultPlan p2 = MockPlan.createBicycleNoTrialEvergreen1USD(); final DateTime requestedDate = new DateTime(); Assert.assertEquals(p0.dateOfFirstRecurringNonZeroCharge(requestedDate, null).compareTo(requestedDate.plusDays(30)), 0); Assert.assertEquals(p1.dateOfFirstRecurringNonZeroCharge(requestedDate, null).compareTo(requestedDate.plusDays(100)), 0); Assert.assertEquals(p2.dateOfFirstRecurringNonZeroCharge(requestedDate, null).compareTo(requestedDate.plusDays(0)), 0); } }
public static Collection<Plan> createAll() { return ImmutableList.<Plan>of(createBicycleTrialEvergreen1USD(), createBicycleNoTrialEvergreen1USD(), createPickupTrialEvergreen10USD(), createSportsCarTrialEvergreen100USD(), createJetTrialEvergreen1000USD(), createJetTrialFixedTermEvergreen1000USD(), createHornMonthlyNoTrial1USD()); }
@Test(groups = "fast") public void testValidation() { final MockCatalog catalog = new MockCatalog(); DefaultPlanPhase pp = MockPlanPhase.createUSDMonthlyEvergreen(null, "1.00").setPlan(MockPlan.createBicycleNoTrialEvergreen1USD()); pp.initialize(catalog); ValidationErrors errors = pp.validate(catalog, new ValidationErrors()); errors.log(log); Assert.assertEquals(errors.size(), 1); pp = MockPlanPhase.createUSDMonthlyEvergreen("1.00", null).setRecurring(new MockRecurring(BillingPeriod.NO_BILLING_PERIOD, MockInternationalPrice.createUSD("1.00")).setPhase(pp)).setPlan(MockPlan.createBicycleNoTrialEvergreen1USD()); pp.initialize(catalog); errors = pp.validate(catalog, new ValidationErrors()); errors.log(log); Assert.assertEquals(errors.size(), 1); }
public static MockPlanPhase create1USDMonthlyEvergreen() { return (MockPlanPhase) new MockPlanPhase(BillingPeriod.MONTHLY, PhaseType.EVERGREEN, new DefaultDuration().setUnit(TimeUnit.UNLIMITED).setNumber(-1), MockInternationalPrice.create1USD(), null).setPlan(MockPlan.createBicycleNoTrialEvergreen1USD()); }
@Test(groups = "fast") public void testPhaseNames() throws CatalogApiException { final String planName = "Foo"; final String planNameExt = planName + "-"; final DefaultPlan p = MockPlan.createBicycleNoTrialEvergreen1USD().setName(planName); final DefaultPlanPhase ppDiscount = MockPlanPhase.create1USDMonthlyEvergreen().setPhaseType(PhaseType.DISCOUNT).setPlan(p); final DefaultPlanPhase ppTrial = MockPlanPhase.create30DayTrial().setPhaseType(PhaseType.TRIAL).setPlan(p); final DefaultPlanPhase ppEvergreen = MockPlanPhase.create1USDMonthlyEvergreen().setPhaseType(PhaseType.EVERGREEN).setPlan(p); final DefaultPlanPhase ppFixedTerm = MockPlanPhase.create1USDMonthlyEvergreen().setPhaseType(PhaseType.FIXEDTERM).setPlan(p); final String ppnDiscount = DefaultPlanPhase.phaseName(p.getName(), ppDiscount.getPhaseType()); final String ppnTrial = DefaultPlanPhase.phaseName(p.getName(), ppTrial.getPhaseType()); final String ppnEvergreen = DefaultPlanPhase.phaseName(p.getName(), ppEvergreen.getPhaseType()); final String ppnFixedTerm = DefaultPlanPhase.phaseName(p.getName(), ppFixedTerm.getPhaseType()); Assert.assertEquals(ppnTrial, planNameExt + "trial"); Assert.assertEquals(ppnEvergreen, planNameExt + "evergreen"); Assert.assertEquals(ppnFixedTerm, planNameExt + "fixedterm"); Assert.assertEquals(ppnDiscount, planNameExt + "discount"); Assert.assertEquals(DefaultPlanPhase.planName(ppnDiscount), planName); Assert.assertEquals(DefaultPlanPhase.planName(ppnTrial), planName); Assert.assertEquals(DefaultPlanPhase.planName(ppnEvergreen), planName); Assert.assertEquals(DefaultPlanPhase.planName(ppnFixedTerm), planName); } }
@Test(groups = "fast") public void testDataCalc() { final DefaultPlan p0 = MockPlan.createBicycleTrialEvergreen1USD(); final DefaultPlan p1 = MockPlan.createBicycleTrialEvergreen1USD(100); final DefaultPlan p2 = MockPlan.createBicycleNoTrialEvergreen1USD(); final DateTime requestedDate = new DateTime(); Assert.assertEquals(p0.dateOfFirstRecurringNonZeroCharge(requestedDate, null).compareTo(requestedDate.plusDays(30)), 0); Assert.assertEquals(p1.dateOfFirstRecurringNonZeroCharge(requestedDate, null).compareTo(requestedDate.plusDays(100)), 0); Assert.assertEquals(p2.dateOfFirstRecurringNonZeroCharge(requestedDate, null).compareTo(requestedDate.plusDays(0)), 0); } }
public UUID generateRegularInvoice(final Account account, final BigDecimal fixedPrice, final BigDecimal recurringPrice, final LocalDate targetDate, final CallContext callContext) throws Exception { final SubscriptionBase subscription = Mockito.mock(SubscriptionBase.class); Mockito.when(subscription.getId()).thenReturn(UUID.randomUUID()); Mockito.when(subscription.getBundleId()).thenReturn(new UUID(0L, 0L)); final BillingEventSet events = new MockBillingEventSet(); final Plan plan = MockPlan.createBicycleNoTrialEvergreen1USD(); final PlanPhase planPhase = MockPlanPhase.create1USDMonthlyEvergreen(); final DateTime effectiveDate = new DateTime().minusDays(1); final Currency currency = Currency.USD; events.add(createMockBillingEvent(account, subscription, effectiveDate, plan, planPhase, fixedPrice, recurringPrice, currency, BillingPeriod.MONTHLY, 1, BillingMode.IN_ADVANCE, "", 1L, SubscriptionBaseTransitionType.CREATE)); Mockito.when(billingApi.getBillingEventsForAccountAndUpdateAccountBCD(Mockito.<UUID>any(), Mockito.<DryRunArguments>any(), Mockito.<InternalCallContext>any())).thenReturn(events); final InternalCallContext context = internalCallContextFactory.createInternalCallContext(account.getId(), callContext); Invoice invoice = generateInvoice(account.getId(), targetDate, new DryRunFutureDateArguments(), context); Assert.assertNotNull(invoice); List<InvoiceModelDao> invoices = invoiceDao.getInvoicesByAccount(false, context); Assert.assertEquals(invoices.size(), 0); invoice = generateInvoice(account.getId(), targetDate, null, context); Assert.assertNotNull(invoice); invoices = invoiceDao.getInvoicesByAccount(false, context); Assert.assertEquals(invoices.size(), 1); return invoice.getId(); }
public static Collection<Plan> createAll() { return ImmutableList.<Plan>of(createBicycleTrialEvergreen1USD(), createBicycleNoTrialEvergreen1USD(), createPickupTrialEvergreen10USD(), createSportsCarTrialEvergreen100USD(), createJetTrialEvergreen1000USD(), createJetTrialFixedTermEvergreen1000USD(), createHornMonthlyNoTrial1USD()); }
final Plan plan = MockPlan.createBicycleNoTrialEvergreen1USD(); final PlanPhase planPhase = MockPlanPhase.create1USDMonthlyEvergreen(); final DateTime effectiveDate = clock.getUTCNow().minusDays(1);
@Test(groups = "fast") public void testValidation() { final MockCatalog catalog = new MockCatalog(); DefaultPlanPhase pp = MockPlanPhase.createUSDMonthlyEvergreen(null, "1.00").setPlan(MockPlan.createBicycleNoTrialEvergreen1USD()); pp.initialize(catalog); ValidationErrors errors = pp.validate(catalog, new ValidationErrors()); errors.log(log); Assert.assertEquals(errors.size(), 1); pp = MockPlanPhase.createUSDMonthlyEvergreen("1.00", null).setRecurring(new MockRecurring(BillingPeriod.NO_BILLING_PERIOD, MockInternationalPrice.createUSD("1.00")).setPhase(pp)).setPlan(MockPlan.createBicycleNoTrialEvergreen1USD()); pp.initialize(catalog); errors = pp.validate(catalog, new ValidationErrors()); errors.log(log); Assert.assertEquals(errors.size(), 1); }
public static MockPlanPhase create1USDMonthlyEvergreen() { return (MockPlanPhase) new MockPlanPhase(BillingPeriod.MONTHLY, PhaseType.EVERGREEN, new DefaultDuration().setUnit(TimeUnit.UNLIMITED).setNumber(-1), MockInternationalPrice.create1USD(), null).setPlan(MockPlan.createBicycleNoTrialEvergreen1USD()); }
final Plan plan = MockPlan.createBicycleNoTrialEvergreen1USD(); final PlanPhase planPhase = MockPlanPhase.create1USDMonthlyEvergreen(); final DateTime effectiveDate = clock.getUTCNow().minusDays(1);
@Test(groups = "fast") public void testPhaseNames() throws CatalogApiException { final String planName = "Foo"; final String planNameExt = planName + "-"; final DefaultPlan p = MockPlan.createBicycleNoTrialEvergreen1USD().setName(planName); final DefaultPlanPhase ppDiscount = MockPlanPhase.create1USDMonthlyEvergreen().setPhaseType(PhaseType.DISCOUNT).setPlan(p); final DefaultPlanPhase ppTrial = MockPlanPhase.create30DayTrial().setPhaseType(PhaseType.TRIAL).setPlan(p); final DefaultPlanPhase ppEvergreen = MockPlanPhase.create1USDMonthlyEvergreen().setPhaseType(PhaseType.EVERGREEN).setPlan(p); final DefaultPlanPhase ppFixedTerm = MockPlanPhase.create1USDMonthlyEvergreen().setPhaseType(PhaseType.FIXEDTERM).setPlan(p); final String ppnDiscount = DefaultPlanPhase.phaseName(p.getName(), ppDiscount.getPhaseType()); final String ppnTrial = DefaultPlanPhase.phaseName(p.getName(), ppTrial.getPhaseType()); final String ppnEvergreen = DefaultPlanPhase.phaseName(p.getName(), ppEvergreen.getPhaseType()); final String ppnFixedTerm = DefaultPlanPhase.phaseName(p.getName(), ppFixedTerm.getPhaseType()); Assert.assertEquals(ppnTrial, planNameExt + "trial"); Assert.assertEquals(ppnEvergreen, planNameExt + "evergreen"); Assert.assertEquals(ppnFixedTerm, planNameExt + "fixedterm"); Assert.assertEquals(ppnDiscount, planNameExt + "discount"); Assert.assertEquals(DefaultPlanPhase.planName(ppnDiscount), planName); Assert.assertEquals(DefaultPlanPhase.planName(ppnTrial), planName); Assert.assertEquals(DefaultPlanPhase.planName(ppnEvergreen), planName); Assert.assertEquals(DefaultPlanPhase.planName(ppnFixedTerm), planName); } }