public static MockPlan createHornMonthlyNoTrial1USD() { return new MockPlan("7-Horn1USD", MockProduct.createHorn(), new DefaultPlanPhase[]{}, MockPlanPhase.create1USDMonthlyEvergreen(), -1); }
public static Collection<Plan> createAll() { return ImmutableList.<Plan>of(createBicycleTrialEvergreen1USD(), createBicycleNoTrialEvergreen1USD(), createPickupTrialEvergreen10USD(), createSportsCarTrialEvergreen100USD(), createJetTrialEvergreen1000USD(), createJetTrialFixedTermEvergreen1000USD(), createHornMonthlyNoTrial1USD()); }
public MockPriceList() { setName(PriceListSet.DEFAULT_PRICELIST_NAME); setPlans(MockPlan.createAll()); } }
public MockPlan(final String planName) { setName(planName); setProduct(new MockProduct()); setFinalPhase(new MockPlanPhase(this)); setInitialPhases(null); setRecurringBillingMode(BillingMode.IN_ADVANCE); setPlansAllowedInBundle(1); }
public MockPlan(final MockPlanPhase mockPlanPhase) { setName("Test"); setProduct(MockProduct.createBicycle()); setFinalPhase(mockPlanPhase); setRecurringBillingMode(BillingMode.IN_ADVANCE); mockPlanPhase.setPlan(this); }
@Test(groups = "fast") public void testFindPhase() throws CatalogApiException { final DefaultPlanPhase phaseTrial1 = new MockPlanPhase().setPhaseType(PhaseType.TRIAL); final DefaultPlanPhase phaseTrial2 = new MockPlanPhase().setPhaseType(PhaseType.TRIAL); final DefaultPlanPhase phaseDiscount1 = new MockPlanPhase().setPhaseType(PhaseType.DISCOUNT); final DefaultPlanPhase phaseDiscount2 = new MockPlanPhase().setPhaseType(PhaseType.DISCOUNT); final DefaultPlan plan1 = new MockPlan().setName("TestPlan1").setFinalPhase(phaseDiscount1).setInitialPhases(new DefaultPlanPhase[]{phaseTrial1}); final DefaultPlan plan2 = new MockPlan().setName("TestPlan2").setFinalPhase(phaseDiscount2).setInitialPhases(new DefaultPlanPhase[]{phaseTrial2}); phaseTrial1.setPlan(plan1); phaseTrial2.setPlan(plan2); phaseDiscount1.setPlan(plan1); phaseDiscount2.setPlan(plan2); final StandaloneCatalog cat = new MockCatalog().setPlans(ImmutableList.<Plan>of(plan1, plan2)); Assert.assertEquals(cat.findCurrentPhase("TestPlan1-discount"), phaseDiscount1); Assert.assertEquals(cat.findCurrentPhase("TestPlan2-discount"), phaseDiscount2); Assert.assertEquals(cat.findCurrentPhase("TestPlan1-trial"), phaseTrial1); Assert.assertEquals(cat.findCurrentPhase("TestPlan2-trial"), phaseTrial2); } }
@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); } }
final MockPlan bicycleTrialEvergreen1USD = MockPlan.createBicycleTrialEvergreen1USD(); events.add(invoiceUtil.createMockBillingEvent(account, subscription, new DateTime("2012-05-01T00:03:42.000Z"), bicycleTrialEvergreen1USD, new MockPlanPhase(bicycleTrialEvergreen1USD, PhaseType.TRIAL), BigDecimal.ZERO, null, account.getCurrency(), BillingPeriod.NO_BILLING_PERIOD, 31, BillingMode.IN_ADVANCE, "", 1L, SubscriptionBaseTransitionType.END_BILLING_DISABLED)); final MockPlan jetTrialEvergreen1000USD = MockPlan.createJetTrialEvergreen1000USD(); events.add(invoiceUtil.createMockBillingEvent(account, subscription, new DateTime("2012-07-25T00:04:00.000Z"), jetTrialEvergreen1000USD, new MockPlanPhase(jetTrialEvergreen1000USD, PhaseType.EVERGREEN), null, new BigDecimal("1000"), account.getCurrency(), BillingPeriod.MONTHLY,
@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); }
@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 testDateValidation() { final StandaloneCatalog c = new MockCatalog(); c.setSupportedCurrencies(new Currency[]{Currency.GBP, Currency.EUR, Currency.USD, Currency.BRL, Currency.MXN}); final DefaultPlan p1 = MockPlan.createBicycleTrialEvergreen1USD(); p1.setPlansAllowedInBundle(-1); p1.setEffectiveDateForExistingSubscriptions(new Date((new Date().getTime()) - (1000 * 60 * 60 * 24))); final ValidationErrors errors = p1.validate(c, new ValidationErrors()); Assert.assertEquals(errors.size(), 3); errors.log(log); }
public MockPlan(final String name, final DefaultProduct product, final DefaultPlanPhase[] planPhases, final DefaultPlanPhase finalPhase, final int plansAllowedInBundle) { this.staticCatalog = new StandaloneCatalog(new Date()); setName(name); setProduct(product); setFinalPhase(finalPhase); setInitialPhases(planPhases); setPlansAllowedInBundle(plansAllowedInBundle); setRecurringBillingMode(BillingMode.IN_ADVANCE); setPriceListName(DefaultPriceListSet.DEFAULT_PRICELIST_NAME); finalPhase.setPlan(this); for (final DefaultPlanPhase pp : planPhases) { pp.setPlan(this); } }
@Test(groups = "fast") public void testOverriding() throws CatalogApiException { final DefaultProduct foo = new DefaultProduct("Foo", ProductCategory.BASE); final DefaultProduct bar = new DefaultProduct("Bar", ProductCategory.BASE); final DefaultPlan[] defaultPlans = new DefaultPlan[]{ new MockPlan().setName("plan-foo-monthly").setProduct(foo).setFinalPhase(new MockPlanPhase().setRecurring(new MockRecurring(MONTHLY, null)).setPhaseType(EVERGREEN)), new MockPlan().setName("plan-bar-monthly").setProduct(bar).setFinalPhase(new MockPlanPhase().setRecurring(new MockRecurring(MONTHLY, null)).setPhaseType(EVERGREEN)), new MockPlan().setName("plan-foo-annual").setProduct(foo).setFinalPhase(new MockPlanPhase().setRecurring(new MockRecurring(ANNUAL, null)).setPhaseType(EVERGREEN)), new MockPlan().setName("plan-bar-annual").setProduct(bar).setFinalPhase(new MockPlanPhase().setRecurring(new MockRecurring(ANNUAL, null)).setPhaseType(EVERGREEN)) }; final DefaultPlan[] childPlans = new DefaultPlan[]{ new MockPlan().setName("plan-foo").setProduct(foo).setFinalPhase(new MockPlanPhase().setRecurring(new MockRecurring(ANNUAL, null)).setPhaseType(DISCOUNT)), new MockPlan().setName("plan-bar").setProduct(bar).setFinalPhase(new MockPlanPhase().setRecurring(new MockRecurring(ANNUAL, null)).setPhaseType(DISCOUNT)) }; final PriceListDefault defaultPriceList = new PriceListDefault(defaultPlans); final DefaultPriceList[] childPriceLists = new DefaultPriceList[]{ new DefaultPriceList(childPlans, "child") }; final DefaultPriceListSet set = new DefaultPriceListSet(defaultPriceList, childPriceLists); Assert.assertEquals(set.getPlanFrom(foo, BillingPeriod.ANNUAL, PriceListSet.DEFAULT_PRICELIST_NAME).getFinalPhase().getPhaseType(), PhaseType.EVERGREEN); Assert.assertEquals(set.getPlanFrom(foo, BillingPeriod.MONTHLY, PriceListSet.DEFAULT_PRICELIST_NAME).getFinalPhase().getPhaseType(), PhaseType.EVERGREEN); Assert.assertEquals(set.getPlanFrom(foo, BillingPeriod.ANNUAL, "child").getFinalPhase().getPhaseType(), PhaseType.DISCOUNT); Assert.assertEquals(set.getPlanFrom(foo, BillingPeriod.MONTHLY, "child").getFinalPhase().getPhaseType(), PhaseType.EVERGREEN); }
@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 MockPlan(final MockPlanPhase mockPlanPhase) { setName("Test"); setProduct(MockProduct.createBicycle()); setFinalPhase(mockPlanPhase); setRecurringBillingMode(BillingMode.IN_ADVANCE); mockPlanPhase.setPlan(this); }
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 testDateValidation() { final StandaloneCatalog c = new MockCatalog(); c.setSupportedCurrencies(new Currency[]{Currency.GBP, Currency.EUR, Currency.USD, Currency.BRL, Currency.MXN}); final DefaultPlan p1 = MockPlan.createBicycleTrialEvergreen1USD(); p1.setPlansAllowedInBundle(-1); p1.setEffectiveDateForExistingSubscriptions(new Date((new Date().getTime()) - (1000 * 60 * 60 * 24))); final ValidationErrors errors = p1.validate(c, new ValidationErrors()); Assert.assertEquals(errors.size(), 3); errors.log(log); }
public static MockPlan createBicycleNoTrialEvergreen1USD() { return new MockPlan("2-BicycleNoTrialEvergreen1USD", MockProduct.createBicycle(), new DefaultPlanPhase[]{}, MockPlanPhase.createUSDMonthlyEvergreen("1.0", null), -1); }
public static Collection<Plan> createAll() { return ImmutableList.<Plan>of(createBicycleTrialEvergreen1USD(), createBicycleNoTrialEvergreen1USD(), createPickupTrialEvergreen10USD(), createSportsCarTrialEvergreen100USD(), createJetTrialEvergreen1000USD(), createJetTrialFixedTermEvergreen1000USD(), createHornMonthlyNoTrial1USD()); }