public static <T extends ValidatingConfig<T>> T getObjectFromStream(final URI uri, final InputStream stream, final Class<T> clazz) throws SAXException, InvalidConfigException, JAXBException, IOException, TransformerException, ValidationException { if (stream == null) { return null; } final Object o = unmarshaller(clazz).unmarshal(stream); if (clazz.isInstance(o)) { @SuppressWarnings("unchecked") final T castObject = (T) o; try { validate(uri, castObject); } catch (ValidationException e) { e.getErrors().log(log); System.err.println(e.getErrors().toString()); throw e; } return castObject; } else { return null; } }
@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.setEffectiveDateForExistingSubscriptons(new Date((new Date().getTime()) - (1000 * 60 * 60 * 24))); final ValidationErrors errors = p1.validate(c, new ValidationErrors()); Assert.assertEquals(errors.size(), 1); errors.log(log); }
@Test(groups = "fast") public void testValidation() { DefaultPlanPhase pp = MockPlanPhase.createUSDMonthlyEvergreen(null, "1.00").setPlan(MockPlan.createBicycleNoTrialEvergreen1USD());//new MockPlanPhase().setBillCycleDuration(BillingPeriod.MONTHLY).setRecurringPrice(null).setFixedPrice(new DefaultInternationalPrice()); ValidationErrors errors = pp.validate(new MockCatalog(), new ValidationErrors()); errors.log(log); Assert.assertEquals(errors.size(), 1); pp = MockPlanPhase.createUSDMonthlyEvergreen("1.00", null).setBillCycleDuration(BillingPeriod.NO_BILLING_PERIOD).setPlan(MockPlan.createBicycleNoTrialEvergreen1USD());// new MockPlanPhase().setBillCycleDuration(BillingPeriod.NO_BILLING_PERIOD).setRecurringPrice(new MockInternationalPrice()); errors = pp.validate(new MockCatalog(), new ValidationErrors()); errors.log(log); Assert.assertEquals(errors.size(), 2); pp = MockPlanPhase.createUSDMonthlyEvergreen(null, null).setBillCycleDuration(BillingPeriod.NO_BILLING_PERIOD).setPlan(MockPlan.createBicycleNoTrialEvergreen1USD());//new MockPlanPhase().setRecurringPrice(null).setFixedPrice(null).setBillCycleDuration(BillingPeriod.NO_BILLING_PERIOD); errors = pp.validate(new MockCatalog(), new ValidationErrors()); errors.log(log); Assert.assertEquals(errors.size(), 2); }
@Test(groups = "fast") public void testNegativeValuePrices() { final StandaloneCatalog c = new MockCatalog(); c.setSupportedCurrencies(new Currency[]{Currency.GBP, Currency.EUR, Currency.USD, Currency.BRL, Currency.MXN}); final DefaultInternationalPrice p1 = new MockInternationalPrice(); p1.setPrices(new DefaultPrice[]{ new DefaultPrice().setCurrency(Currency.GBP).setValue(new BigDecimal(-1)), new DefaultPrice().setCurrency(Currency.EUR).setValue(new BigDecimal(-1)), new DefaultPrice().setCurrency(Currency.USD).setValue(new BigDecimal(-1)), new DefaultPrice().setCurrency(Currency.BRL).setValue(new BigDecimal(1)), new DefaultPrice().setCurrency(Currency.MXN).setValue(new BigDecimal(1)), }); final ValidationErrors errors = p1.validate(c, new ValidationErrors()); errors.log(log); Assert.assertEquals(errors.size(), 3); } }