assertEventFired(AfterDroneCallableCreated.class, 2);
assertEventFired(BeforeDroneInstantiated.class, 0);
assertEventFired(AfterDroneInstantiated.class, 0);
TestEnricher testEnricher = serviceLoader.onlyOne(TestEnricher.class);
testEnricher.enrich(instance);
assertEventFired(BeforeDroneInstantiated.class, 2);
assertEventFired(AfterDroneInstantiated.class, 2);
Object[] dummyParameters = testEnricher.resolve(testDummyMethod);
assertEventFired(BeforeDroneInstantiated.class, 2);
assertEventFired(AfterDroneInstantiated.class, 2);
testDummyMethod.invoke(instance, dummyParameters);
fire(new After(instance, testDummyMethod));
assertEventFired(BeforeDroneDestroyed.class, 0);
assertEventFired(AfterDroneDestroyed.class, 0);
fire(new Before(instance, testDummyMethodWithParameters));
assertEventFired(BeforeDroneConfigured.class, 3);
assertEventFired(AfterDroneConfigured.class, 3);
assertEventFired(BeforeDroneCallableCreated.class, 3);
assertEventFired(AfterDroneCallableCreated.class, 3);
assertEventFired(BeforeDroneInstantiated.class, 2);
assertEventFired(AfterDroneInstantiated.class, 2);
Object[] parameters = testEnricher.resolve(testDummyMethodWithParameters);
assertEventFired(BeforeDroneInstantiated.class, 3);
assertEventFired(AfterDroneInstantiated.class, 3);
testDummyMethodWithParameters.invoke(instance, parameters);