use of com.qcadoo.model.internal.validators.ScaleValidator in project qcadoo by qcadoo.
the class ValidatorTest method shouldHasErrorsIfBigDecimalScaleIsNotEqual.
@Test
public void shouldHasErrorsIfBigDecimalScaleIsNotEqual() throws Exception {
// given
Entity entity = new DefaultEntity(dataDefinition);
entity.setField("money", new BigDecimal("123.45"));
fieldDefinitionMoney.withValidator(new ScaleValidator(null, 4, null));
// when
entity = dataDefinition.save(entity);
// then
verify(session, never()).save(any(SampleSimpleDatabaseObject.class));
assertFalse(entity.isValid());
}
use of com.qcadoo.model.internal.validators.ScaleValidator in project qcadoo by qcadoo.
the class ValidatorTest method shouldHasErrorsIfBigDecimalPresicionAndScaleAreTooLong.
@Test
public void shouldHasErrorsIfBigDecimalPresicionAndScaleAreTooLong() throws Exception {
// given
Entity entity = new DefaultEntity(dataDefinition);
entity.setField("money", new BigDecimal("123.456"));
fieldDefinitionMoney.withValidator(new ScaleValidator(null, null, 2)).withValidator(new UnscaledValueValidator(null, null, 4));
// when
entity = dataDefinition.save(entity);
// then
verify(session, never()).save(any(SampleSimpleDatabaseObject.class));
assertFalse(entity.isValid());
}
use of com.qcadoo.model.internal.validators.ScaleValidator in project qcadoo by qcadoo.
the class ValidatorTest method shouldHasErrorsIfBigDecimalScaleAreTooShort.
@Test
public void shouldHasErrorsIfBigDecimalScaleAreTooShort() throws Exception {
// given
Entity entity = new DefaultEntity(dataDefinition);
entity.setField("money", new BigDecimal("123.45"));
fieldDefinitionMoney.withValidator(new ScaleValidator(3, null, null));
// when
entity = dataDefinition.save(entity);
// then
verify(session, never()).save(any(SampleSimpleDatabaseObject.class));
assertFalse(entity.isValid());
}
use of com.qcadoo.model.internal.validators.ScaleValidator in project qcadoo by qcadoo.
the class DecimalType method getMissingValidators.
@Override
public Collection<FieldHookDefinition> getMissingValidators(final Iterable<FieldHookDefinition> validators) {
FieldHookDefinition defaultScaleValidator = new ScaleValidator(null, null, NumberService.DEFAULT_MAX_FRACTION_DIGITS_IN_DECIMAL);
FieldHookDefinition defaultUnscaledValueValidator = new UnscaledValueValidator(null, null, NumberService.DEFAULT_MAX_INTEGER_DIGITS_IN_DECIMAL);
Set<FieldHookDefinition> missingValidators = Sets.<FieldHookDefinition>newHashSet(defaultScaleValidator, defaultUnscaledValueValidator);
for (FieldHookDefinition validator : validators) {
if (validator instanceof UnscaledValueValidator && ((UnscaledValueValidator) validator).hasUppuerBoundDefined()) {
missingValidators.remove(defaultUnscaledValueValidator);
}
if (validator instanceof ScaleValidator && ((ScaleValidator) validator).hasUppuerBoundDefined()) {
missingValidators.remove(defaultScaleValidator);
}
}
return missingValidators;
}
use of com.qcadoo.model.internal.validators.ScaleValidator in project qcadoo by qcadoo.
the class ValidatorTest method shouldHasNoErrorsIfBigDecimalValuePresicionAndScaleIsOk.
@Test
public void shouldHasNoErrorsIfBigDecimalValuePresicionAndScaleIsOk() throws Exception {
// given
Entity entity = new DefaultEntity(dataDefinition);
entity.setField("money", new BigDecimal("123.4"));
fieldDefinitionMoney.withValidator(new UnscaledValueValidator(null, null, 3)).withValidator(new ScaleValidator(null, null, 1));
// when
entity = dataDefinition.save(entity);
// then
verify(session).save(any(SampleSimpleDatabaseObject.class));
assertTrue(entity.isValid());
}
Aggregations