/** * Create the default testdata structure. */ private void createDefault() { observer.clear(); admin.create(defaultBeans); assertThat(observer.getChanges().size(), is(defaultBeans.size())); observer.clear(); }
@Test public void test_simple_delete_notification() { Parent parent = ConfigTestData.getParent("1"); admin.createObject(parent); assertThat(observer.getChanges().size(), is(1)); admin.deleteObject(parent); assertThat(observer.getChanges().size(), is(1)); for (ConfigChange<Parent> change : observer.getChanges(Parent.class)) { assertTrue(change.before().isPresent()); assertFalse(change.after().isPresent()); assertReflectionEquals(change.before().get(), parent, LENIENT_ORDER); } }
private void createThenGet(Object object) throws AssertionFailedError { Bean bean = toBean(object); observer.clear(); admin.create(bean); assertThat(observer.getChanges().size(), is(1)); assertFalse(observer.isBeforePresent(object.getClass())); getAndAssert(object); }
@Test public void test_simple_create_notification() { Grandfather grandfather = ConfigTestData.getGrandfather("1"); admin.createObject(grandfather); assertThat(observer.getChanges().size(), is(1)); for (ConfigChange<Grandfather> change : observer.getChanges(Grandfather.class)) { assertFalse(change.before().isPresent()); assertTrue(change.after().isPresent()); assertReflectionEquals(change.after().get(), grandfather, LENIENT_ORDER); } }
@Test public void test_advanced_delete_notification() { Parent p1 = ConfigTestData.getParent("1"); Parent p2 = ConfigTestData.getParent("2"); Parent p3 = ConfigTestData.getParent("3"); admin.createObjects(Arrays.asList(p1, p2, p3)); assertThat(observer.getChanges().size(), is(3)); admin.delete(ConfigTestData.PARENT_SCHEMA_NAME, Arrays.asList("1", "2", "3")); assertThat(observer.getChanges().size(), is(3)); for (ConfigChange<Parent> change : observer.getChanges(Parent.class)) { assertTrue(change.before().isPresent()); assertFalse(change.after().isPresent()); if (change.before().get().getId().equals("1")) { assertReflectionEquals(p1, change.before().get(), LENIENT_ORDER); } else if (change.before().get().getId().equals("2")) { assertReflectionEquals(p2, change.before().get(), LENIENT_ORDER); } else if (change.before().get().getId().equals("3")) { assertReflectionEquals(p3, change.before().get(), LENIENT_ORDER); } else { fail("change not recognized"); } } }
@Test public void test_set_merge_without_schema() { Bean b = Bean.create(BeanId.create("1", "missing_schema_name")); try { admin.create(b); fail("Cant add beans without a schema."); } catch (AbortRuntimeException e) { assertThat(e.getEvent().getCode(), is(CFG101)); assertThat(observer.getChanges().size(), is(0)); } try { admin.merge(b); fail("Cant add beans without a schema."); } catch (AbortRuntimeException e) { assertThat(e.getEvent().getCode(), is(CFG101)); assertThat(observer.getChanges().size(), is(0)); } }
@Test public void test_simple_set_notification() { Parent before = ConfigTestData.getParent("1"); Parent after = ConfigTestData.getParent("1"); admin.createObject(before); assertThat(observer.getChanges().size(), is(1)); after.setProp1("new"); admin.setObject(after); for (ConfigChange<Parent> change : observer.getChanges(Parent.class)) { assertTrue(change.before().isPresent()); assertTrue(change.after().isPresent()); Parent beforeChange = change.before().get(); Parent afterChange = change.after().get(); assertReflectionEquals(beforeChange, before, LENIENT_ORDER); assertReflectionEquals(afterChange, after, LENIENT_ORDER); } }
@Test public void test_delete_reference_violation() { admin.create(toBeans(g1, g2, p1, p2, c1, c2)); observer.clear(); // test single try { admin.delete(BeanId.create("c1", CHILD_SCHEMA_NAME)); fail("Should not be possible to delete a bean with references"); } catch (AbortRuntimeException e) { assertThat(e.getEvent().getCode(), is(CFG302)); assertThat(observer.getChanges().size(), is(0)); } // test multiple try { admin.delete(CHILD_SCHEMA_NAME, Arrays.asList("c1", "c2")); fail("Should not be possible to delete a bean with references"); } catch (AbortRuntimeException e) { assertThat(e.getEvent().getCode(), is(CFG302)); assertThat(observer.getChanges().size(), is(0)); } }
@Test public void test_simple_merge_notification() { Parent before = ConfigTestData.getParent("1"); Parent after = new Parent("1"); admin.createObject(before); assertThat(observer.getChanges().size(), is(1)); after.setProp1("new"); admin.mergeObject(after); for (ConfigChange<Parent> change : observer.getChanges(Parent.class)) { assertTrue(change.before().isPresent()); assertTrue(change.after().isPresent()); Parent beforeChange = change.before().get(); Parent afterChange = change.after().get(); assertReflectionEquals(beforeChange, before, LENIENT_ORDER); assertReflectionEquals(afterChange, after, LENIENT_ORDER); } }
@Test public void test_advanced_create_notification() { Grandfather grandfather = ConfigTestData.getGrandfather("1"); Parent parent = ConfigTestData.getParent("1"); Child child = ConfigTestData.getChild("1"); parent.add(child); grandfather.add(parent); admin.createObjects(Arrays.asList(grandfather, parent, child)); assertThat(observer.getChanges().size(), is(3)); for (ConfigChange<Grandfather> change : observer.getChanges(Grandfather.class)) { assertFalse(change.before().isPresent()); assertTrue(change.after().isPresent()); assertReflectionEquals(grandfather, change.after().get(), LENIENT_ORDER); } for (ConfigChange<Parent> change : observer.getChanges(Parent.class)) { assertFalse(change.before().isPresent()); assertTrue(change.after().isPresent()); assertReflectionEquals(parent, change.after().get(), LENIENT_ORDER); } for (ConfigChange<Child> change : observer.getChanges(Child.class)) { assertFalse(change.before().isPresent()); assertTrue(change.after().isPresent()); assertReflectionEquals(child, change.after().get(), LENIENT_ORDER); } }
assertThat(observer.getChanges().size(), is(3)); grandfatherAfter.setProp1("new"); parentAfter.setProp1("new"); childAfter.setProp1("new"); admin.mergeObjects(Arrays.asList(grandfatherAfter, parentAfter, childAfter)); assertThat(observer.getChanges().size(), is(3)); for (ConfigChange<Grandfather> change : observer.getChanges(Grandfather.class)) { assertTrue(change.before().isPresent());
assertThat(observer.getChanges().size(), is(3)); grandfatherAfter.setProp1("new"); parentAfter.setProp1("new"); childAfter.setProp1("new"); admin.setObjects(Arrays.asList(grandfatherAfter, parentAfter, childAfter)); assertThat(observer.getChanges().size(), is(3)); for (ConfigChange<Grandfather> change : observer.getChanges(Grandfather.class)) { assertTrue(change.before().isPresent());
} catch (AbortRuntimeException e) { assertThat(e.getEvent().getCode(), is(CFG110)); assertThat(observer.getChanges().size(), is(0)); } catch (AbortRuntimeException e) { assertThat(e.getEvent().getCode(), is(CFG110)); assertThat(observer.getChanges().size(), is(0)); } catch (AbortRuntimeException e) { assertThat(e.getEvent().getCode(), is(CFG110)); assertThat(observer.getChanges().size(), is(0)); } catch (AbortRuntimeException e) { assertThat(e.getEvent().getCode(), is(CFG111)); assertThat(observer.getChanges().size(), is(0)); } catch (AbortRuntimeException e) { assertThat(e.getEvent().getCode(), is(CFG110)); assertThat(observer.getChanges().size(), is(0)); } catch (AbortRuntimeException e) { assertThat(e.getEvent().getCode(), is(CFG110)); assertThat(observer.getChanges().size(), is(0));
} catch (AbortRuntimeException e) { assertThat(e.getEvent().getCode(), is(CFG105)); assertThat(observer.getChanges().size(), is(0)); } catch (AbortRuntimeException e) { assertThat(e.getEvent().getCode(), is(CFG105)); assertThat(observer.getChanges().size(), is(0)); } catch (AbortRuntimeException e) { assertThat(e.getEvent().getCode(), is(CFG105)); assertThat(observer.getChanges().size(), is(0)); } catch (AbortRuntimeException e) { assertThat(e.getEvent().getCode(), is(CFG105)); assertThat(observer.getChanges().size(), is(0)); } catch (AbortRuntimeException e) { assertThat(e.getEvent().getCode(), is(CFG106)); assertThat(observer.getChanges().size(), is(0)); } catch (AbortRuntimeException e) { assertThat(e.getEvent().getCode(), is(CFG105)); assertThat(observer.getChanges().size(), is(0));
fail("Should not be possible to merge invalid reference"); assertThat(observer.getChanges().size(), is(0)); admin.merge(b); fail("Should not be possible to merge invalid reference"); assertThat(observer.getChanges().size(), is(0)); } catch (AbortRuntimeException e) { if (e.getEvent().getCode() != CFG301 && e.getEvent().getCode() != CFG304) { fail("Should not be possible to merge invalid reference"); assertThat(observer.getChanges().size(), is(0)); fail("Should not be possible to merge invalid reference"); assertThat(observer.getChanges().size(), is(0));