MockVetoableChangeListener l3 = new MockVetoableChangeListener();
support.addBeanContextMembershipListener(l1);
support.addPropertyChangeListener("children", l2);
support.addVetoableChangeListener("children", l3);
BeanContextChild childPeer = new MockBeanContextChild();
BeanContextProxy child = new MockBeanContextProxy(childPeer);
support.add(child);
support.records.assertRecord("initialize", null);
support.records.assertRecord("validatePendingAdd", child, Boolean.TRUE);
support.records.assertRecord("createBCSChild", child, childPeer,
support.children().get(child));
support.records.assertRecord("createBCSChild", childPeer, child,
support.children().get(childPeer));
support.records.assertRecord("childJustAddedHook", child, support
.children().get(child), null);
support.records.assertRecord("childJustAddedHook", childPeer, support
.children().get(childPeer), null);
support.records.assertEndOfRecords();
assertTrue(l1.lastEventAdd);
assertMembershipEvent(l1.lastEvent, support, null, Arrays
.asList(new Object[] { child, childPeer }));
assertNull(l2.lastEvent);
assertNull(l3.lastEvent);
assertSame(support, childPeer.getBeanContext());
assertEquals(2, support.size());
}