support.addBeanContextServicesListener(l1);
childSupport.addBeanContextServicesListener(l2);
support.records.assertRecord("initialize", null);
childSupport.records.assertRecord("initialize", null);
MockBeanContextServiceProvider provider = new MockBeanContextServiceProvider();
boolean result = support.addService(Collection.class, provider);
assertTrue(result);
assertEquals(1, support.services().size());
assertEquals(0, childSupport.services().size());
Object bcssProvider = support.services().get(Collection.class);
support.records.assertRecord("createBCSSServiceProvider",
Collection.class, provider, bcssProvider);
support.records.assertEndOfRecords();
BeanContextServiceAvailableEvent evt = (BeanContextServiceAvailableEvent) childSupport.records
.getArg(0);
childSupport.records.assertRecord("serviceAvailable", evt, null);
assertSame(support, evt.getSourceAsBeanContextServices());
assertSame(Collection.class, evt.getServiceClass());
childSupport.records.assertEndOfRecords();
assertSame(support, l1.lastAvailableEvent
.getSourceAsBeanContextServices());
assertSame(Collection.class, l1.lastAvailableEvent.getServiceClass());
assertSame(support, l2.lastAvailableEvent
.getSourceAsBeanContextServices());
assertSame(Collection.class, l2.lastAvailableEvent.getServiceClass());
l1.clearLastEvent();
l2.clearLastEvent();
// add exist
MockBeanContextServiceProvider another = new MockBeanContextServiceProvider();
result = support.addService(Collection.class, another);
assertFalse(result);
support.records.assertEndOfRecords();
childSupport.records.assertEndOfRecords();
assertNull(l1.lastAvailableEvent);