public boolean validate(final Object o) { final ValidationConfiguration configuration = getConfiguration(o.getClass()); if (!hasValidNullability(columnInfo, value)) { return false; if (!isValidLengthString(columnInfo, value)) { return false; if (!isValidLengthChar(columnInfo, value)) { return false; if (!hasValidPrecision(columnInfo, value)) { return false; if (!hasValidScale(columnInfo, value)) { return false;
@Test(groups = "slow") public void testRetrievingColumnInfo() { final Collection<DefaultColumnInfo> columnInfoList = vm.getTableInfo(TABLE_NAME); assertEquals(columnInfoList.size(), 4); assertNotNull(vm.getColumnInfo(TABLE_NAME, "column1")); assertNull(vm.getColumnInfo(TABLE_NAME, "bogus")); final DefaultColumnInfo numericColumnInfo = vm.getColumnInfo(TABLE_NAME, "column3"); assertNotNull(numericColumnInfo); assertEquals(numericColumnInfo.getScale(), 4); assertEquals(numericColumnInfo.getPrecision(), 10); }
vm.setConfiguration(testObject.getClass(), STRING_FIELD_2_PROPERTY, vm.getColumnInfo(TABLE_NAME, STRING_FIELD_2)); assertTrue(vm.hasConfiguration(testObject.getClass())); assertFalse(vm.hasConfiguration(ValidationManager.class)); final ValidationConfiguration configuration = vm.getConfiguration(SimpleTestClass.class); assertNotNull(configuration); assertTrue(configuration.hasMapping(STRING_FIELD_2_PROPERTY)); assertFalse(vm.validate(testObject)); testObject.setStringField2("a"); assertFalse(vm.validate(testObject)); assertFalse(vm.validate(testObject)); assertTrue(vm.validate(testObject)); vm.setConfiguration(testObject.getClass(), STRING_FIELD_1_PROPERTY, vm.getColumnInfo(TABLE_NAME, STRING_FIELD_1)); assertTrue(vm.validate(testObject)); testObject.setStringField1("This is a long string that exceeds the length limit for column 1."); assertFalse(vm.validate(testObject)); testObject.setStringField1("This is a short string."); assertTrue(vm.validate(testObject)); vm.setConfiguration(testObject.getClass(), NUMERIC_FIELD_PROPERTY, vm.getColumnInfo(TABLE_NAME, NUMERIC_FIELD)); assertTrue(vm.validate(testObject)); assertFalse(vm.validate(testObject));
@Override @BeforeClass(groups = "slow") public void beforeClass() throws Exception { super.beforeClass(); final DatabaseSchemaDao dao = new DatabaseSchemaDao(dbi); vm = new ValidationManager(dao); vm.loadSchemaInformation(helper.getDatabaseName()); }