public void testQueryEvents() { EventRegistry registry = EventRegistryFactory.forObjectContainer(db()); EventRecorder recorder = new EventRecorder(fileSession().lock()); registry.queryStarted().addListener(recorder); registry.queryFinished().addListener(recorder); Assert.areEqual(0, recorder.size()); Query q = db().query(); q.execute(); Assert.areEqual(2, recorder.size()); EventRecord e1 = recorder.get(0); Assert.areSame(registry.queryStarted(), e1.e); Assert.areSame(q, ((QueryEventArgs) e1.args).query()); EventRecord e2 = recorder.get(1); Assert.areSame(registry.queryFinished(), e2.e); Assert.areSame(q, ((QueryEventArgs) e2.args).query()); recorder.clear(); registry.queryStarted().removeListener(recorder); registry.queryFinished().removeListener(recorder); db().query().execute(); Assert.areEqual(0, recorder.size()); }
@Override protected void db4oSetupAfterStore() throws Exception { EventRegistryFactory.forObjectContainer(db()) .updated() .addListener( new EventListener4<ObjectInfoEventArgs>() { @Override public void onEvent(Event4<ObjectInfoEventArgs> e, ObjectInfoEventArgs args) { if (doThrow) { if (args.info().getObject().getClass().equals(Item.class)) { throw new RuntimeException(); } } } }); }
public void testForObjectContainerReturnsSameInstance() { Assert.areSame( EventRegistryFactory.forObjectContainer(db()), EventRegistryFactory.forObjectContainer(db())); }