private void checkRehydrated(final CatalogOverridePhaseDefinitionModelDao obj, final CatalogOverridePhaseDefinitionSqlDao sqlDao) { final CatalogOverridePhaseDefinitionModelDao rehydrated = sqlDao.getByAttributes(obj.getParentPhaseName(), obj.getCurrency(), obj.getFixedPrice(), obj.getRecurringPrice(), internalCallContext).get(0); assertEquals(rehydrated.getParentPhaseName(), obj.getParentPhaseName()); if (obj.getFixedPrice() != null) { assertEquals(rehydrated.getFixedPrice().compareTo(obj.getFixedPrice()), 0); } else { assertNull(rehydrated.getFixedPrice()); } if (obj.getRecurringPrice() != null) { assertEquals(rehydrated.getRecurringPrice().compareTo(obj.getRecurringPrice()), 0); } else { assertNull(rehydrated.getRecurringPrice()); } assertEquals(rehydrated.getCurrency(), obj.getCurrency()); } });
@Override public Void doTransaction(final CatalogOverridePhaseDefinitionSqlDao sqlDao) { sqlDao.create(obj1, internalCallContext); final Long lastInserted = sqlDao.getLastInsertId(); final CatalogOverridePhaseDefinitionModelDao rehydrated = sqlDao.getByRecordId(lastInserted, internalCallContext); assertEquals(rehydrated.getParentPhaseName(), obj1.getParentPhaseName()); assertEquals(rehydrated.getFixedPrice().compareTo(obj1.getFixedPrice()), 0); assertEquals(rehydrated.getRecurringPrice().compareTo(obj1.getRecurringPrice()), 0); assertEquals(rehydrated.getCurrency(), obj1.getCurrency()); return null; } });
private PlanPhasePriceOverride[] createOverrides(final Plan defaultPlan, final List<CatalogOverridePhaseDefinitionModelDao> phaseDefs, final InternalTenantContext context) { final PlanPhasePriceOverride[] result = new PlanPhasePriceOverride[defaultPlan.getAllPhases().length]; for (int i = 0; i < defaultPlan.getAllPhases().length; i++) { final PlanPhase curPhase = defaultPlan.getAllPhases()[i]; final CatalogOverridePhaseDefinitionModelDao overriddenPhase = Iterables.tryFind(phaseDefs, new Predicate<CatalogOverridePhaseDefinitionModelDao>() { @Override public boolean apply(final CatalogOverridePhaseDefinitionModelDao input) { return input.getParentPhaseName().equals(curPhase.getName()); } }).orNull(); if (overriddenPhase != null) { List<UsagePriceOverride> usagePriceOverrides = getUsagePriceOverrides(curPhase, overriddenPhase, context); result[i] = new DefaultPlanPhasePriceOverride(curPhase.getName(), Currency.valueOf(overriddenPhase.getCurrency()), overriddenPhase.getFixedPrice(), overriddenPhase.getRecurringPrice(), usagePriceOverrides); } else { result[i] = null; } } return result; }
@Override public Void doTransaction(final CatalogOverridePhaseDefinitionSqlDao sqlDao) { sqlDao.create(obj1, internalCallContext); final Long lastInserted = sqlDao.getLastInsertId(); final CatalogOverridePhaseDefinitionModelDao rehydrated = sqlDao.getByRecordId(lastInserted, internalCallContext); assertEquals(rehydrated.getParentPhaseName(), obj1.getParentPhaseName()); assertNull(rehydrated.getFixedPrice()); assertEquals(rehydrated.getRecurringPrice().compareTo(obj1.getRecurringPrice()), 0); assertEquals(rehydrated.getCurrency(), obj1.getCurrency()); return null; } });
Assert.assertNull(curPhase.getFixedPrice()); Assert.assertNull(curPhase.getRecurringPrice()); assertEquals(curPhase.getParentPhaseName(), resolvedOverrides[0].getPhaseName());
@Test(groups = "slow") public void testGetOverriddenPlanPhases() throws Exception { final StandaloneCatalog catalog = XMLLoader.getObjectFromString(Resources.getResource("SpyCarAdvanced.xml").toExternalForm(), StandaloneCatalog.class); final Plan plan = catalog.findCurrentPlan("discount-standard-monthly"); final PlanPhasePriceOverride[] resolvedOverrides = new PlanPhasePriceOverride[plan.getAllPhases().length]; resolvedOverrides[0] = new DefaultPlanPhasePriceOverride(plan.getAllPhases()[0].getName(), Currency.USD, BigDecimal.TEN, BigDecimal.ONE, null); resolvedOverrides[1] = new DefaultPlanPhasePriceOverride(plan.getAllPhases()[1].getName(), Currency.USD, BigDecimal.ONE, BigDecimal.TEN, null); resolvedOverrides[2] = new DefaultPlanPhasePriceOverride(plan.getFinalPhase().getName(), Currency.USD, BigDecimal.ZERO, new BigDecimal("348.64"), null); final CatalogOverridePlanDefinitionModelDao newPlan = catalogOverrideDao.getOrCreateOverridePlanDefinition(plan, new DateTime(catalog.getEffectiveDate()), resolvedOverrides, internalCallContext); final List<CatalogOverridePhaseDefinitionModelDao> phases = catalogOverrideDao.getOverriddenPlanPhases(newPlan.getRecordId(), internalCallContext); assertEquals(phases.size(), 3); for (int i = 0; i < 3; i++) { final CatalogOverridePhaseDefinitionModelDao curPhase = phases.get(i); assertEquals(curPhase.getCurrency(), resolvedOverrides[i].getCurrency().name()); assertEquals(curPhase.getFixedPrice().compareTo(resolvedOverrides[i].getFixedPrice()), 0); assertEquals(curPhase.getRecurringPrice().compareTo(resolvedOverrides[i].getRecurringPrice()), 0); assertEquals(curPhase.getParentPhaseName(), resolvedOverrides[i].getPhaseName()); } }
assertEquals(curPhase.getFixedPrice().compareTo(resolvedOverrides[0].getFixedPrice()), 0); assertEquals(curPhase.getRecurringPrice().compareTo(resolvedOverrides[0].getRecurringPrice()), 0); assertEquals(curPhase.getParentPhaseName(), resolvedOverrides[0].getPhaseName());
private void checkRehydrated(final CatalogOverridePhaseDefinitionModelDao obj, final CatalogOverridePhaseDefinitionSqlDao sqlDao) { final CatalogOverridePhaseDefinitionModelDao rehydrated = sqlDao.getByAttributes(obj.getParentPhaseName(), obj.getCurrency(), obj.getFixedPrice(), obj.getRecurringPrice(), internalCallContext).get(0); assertEquals(rehydrated.getParentPhaseName(), obj.getParentPhaseName()); if (obj.getFixedPrice() != null) { assertEquals(rehydrated.getFixedPrice().compareTo(obj.getFixedPrice()), 0); } else { assertNull(rehydrated.getFixedPrice()); } if (obj.getRecurringPrice() != null) { assertEquals(rehydrated.getRecurringPrice().compareTo(obj.getRecurringPrice()), 0); } else { assertNull(rehydrated.getRecurringPrice()); } assertEquals(rehydrated.getCurrency(), obj.getCurrency()); } });
@Override public Void doTransaction(final CatalogOverridePhaseDefinitionSqlDao sqlDao) { sqlDao.create(obj1, internalCallContext); final Long lastInserted = sqlDao.getLastInsertId(); final CatalogOverridePhaseDefinitionModelDao rehydrated = sqlDao.getByRecordId(lastInserted, internalCallContext); assertEquals(rehydrated.getParentPhaseName(), obj1.getParentPhaseName()); assertEquals(rehydrated.getFixedPrice().compareTo(obj1.getFixedPrice()), 0); assertEquals(rehydrated.getRecurringPrice().compareTo(obj1.getRecurringPrice()), 0); assertEquals(rehydrated.getCurrency(), obj1.getCurrency()); return null; } });
private PlanPhasePriceOverride[] createOverrides(final Plan defaultPlan, final List<CatalogOverridePhaseDefinitionModelDao> phaseDefs, final InternalTenantContext context) { final PlanPhasePriceOverride[] result = new PlanPhasePriceOverride[defaultPlan.getAllPhases().length]; for (int i = 0; i < defaultPlan.getAllPhases().length; i++) { final PlanPhase curPhase = defaultPlan.getAllPhases()[i]; final CatalogOverridePhaseDefinitionModelDao overriddenPhase = Iterables.tryFind(phaseDefs, new Predicate<CatalogOverridePhaseDefinitionModelDao>() { @Override public boolean apply(final CatalogOverridePhaseDefinitionModelDao input) { return input.getParentPhaseName().equals(curPhase.getName()); } }).orNull(); if (overriddenPhase != null) { List<UsagePriceOverride> usagePriceOverrides = getUsagePriceOverrides(curPhase, overriddenPhase, context); result[i] = new DefaultPlanPhasePriceOverride(curPhase.getName(), Currency.valueOf(overriddenPhase.getCurrency()), overriddenPhase.getFixedPrice(), overriddenPhase.getRecurringPrice(), usagePriceOverrides); } else { result[i] = null; } } return result; }
@Override public Void doTransaction(final CatalogOverridePhaseDefinitionSqlDao sqlDao) { sqlDao.create(obj1, internalCallContext); final Long lastInserted = sqlDao.getLastInsertId(); final CatalogOverridePhaseDefinitionModelDao rehydrated = sqlDao.getByRecordId(lastInserted, internalCallContext); assertEquals(rehydrated.getParentPhaseName(), obj1.getParentPhaseName()); assertNull(rehydrated.getFixedPrice()); assertEquals(rehydrated.getRecurringPrice().compareTo(obj1.getRecurringPrice()), 0); assertEquals(rehydrated.getCurrency(), obj1.getCurrency()); return null; } });
@Test(groups = "slow") public void testGetOverriddenPlanPhases() throws Exception { final StandaloneCatalog catalog = XMLLoader.getObjectFromString(Resources.getResource("SpyCarAdvanced.xml").toExternalForm(), StandaloneCatalog.class); final Plan plan = catalog.findCurrentPlan("discount-standard-monthly"); final PlanPhasePriceOverride[] resolvedOverrides = new PlanPhasePriceOverride[plan.getAllPhases().length]; resolvedOverrides[0] = new DefaultPlanPhasePriceOverride(plan.getAllPhases()[0].getName(), Currency.USD, BigDecimal.TEN, BigDecimal.ONE, null); resolvedOverrides[1] = new DefaultPlanPhasePriceOverride(plan.getAllPhases()[1].getName(), Currency.USD, BigDecimal.ONE, BigDecimal.TEN, null); resolvedOverrides[2] = new DefaultPlanPhasePriceOverride(plan.getFinalPhase().getName(), Currency.USD, BigDecimal.ZERO, new BigDecimal("348.64"), null); final CatalogOverridePlanDefinitionModelDao newPlan = catalogOverrideDao.getOrCreateOverridePlanDefinition(plan, new DateTime(catalog.getEffectiveDate()), resolvedOverrides, internalCallContext); final List<CatalogOverridePhaseDefinitionModelDao> phases = catalogOverrideDao.getOverriddenPlanPhases(newPlan.getRecordId(), internalCallContext); assertEquals(phases.size(), 3); for (int i = 0; i < 3; i++) { final CatalogOverridePhaseDefinitionModelDao curPhase = phases.get(i); assertEquals(curPhase.getCurrency(), resolvedOverrides[i].getCurrency().name()); assertEquals(curPhase.getFixedPrice().compareTo(resolvedOverrides[i].getFixedPrice()), 0); assertEquals(curPhase.getRecurringPrice().compareTo(resolvedOverrides[i].getRecurringPrice()), 0); assertEquals(curPhase.getParentPhaseName(), resolvedOverrides[i].getPhaseName()); } }
assertEquals(curPhase.getFixedPrice().compareTo(resolvedOverrides[0].getFixedPrice()), 0); assertEquals(curPhase.getRecurringPrice().compareTo(resolvedOverrides[0].getRecurringPrice()), 0); assertEquals(curPhase.getParentPhaseName(), resolvedOverrides[0].getPhaseName());
Assert.assertNull(curPhase.getFixedPrice()); Assert.assertNull(curPhase.getRecurringPrice()); assertEquals(curPhase.getParentPhaseName(), resolvedOverrides[0].getPhaseName());