Fix API Event Injector tests

This commit is contained in:
James Seibel
2022-09-08 21:04:54 -05:00
parent 35b00165a2
commit b0b5007341
4 changed files with 104 additions and 104 deletions
@@ -6,14 +6,13 @@ import com.seibel.lod.core.api.external.coreImplementations.interfaces.events.IC
* A dummy event implementation used for unit testing.
*
* @author James Seibel
* @version 2022-7-16
* @version 2022-9-8
*/
public abstract class DhApiTestEvent implements ICoreDhApiEvent<Boolean>
{
/**
* Test event.
*
* @param input
* @return whether the event should be canceled or not.
*/
public abstract boolean test(Boolean input);
@@ -30,11 +29,9 @@ public abstract class DhApiTestEvent implements ICoreDhApiEvent<Boolean>
//=========================//
@Override
public final boolean fireEvent(Boolean input)
{
return test(input);
}
public final boolean fireEvent(Boolean input) { return test(input); }
@Override
public final boolean getCancelable() { return true; }
}
@@ -6,20 +6,23 @@ import testItems.eventInjection.abstractObjects.DhApiTestEvent;
* Dummy test event for unit tests.
*
* @author James Seibel
* @version 2022-7-16
* @version 2022-9-8
*/
//public class DhTestEvent extends DhApiTestEvent
//{
// public Boolean eventFiredValue = null;
//
// @Override
// public boolean test(Boolean cancelEvent)
// {
// this.eventFiredValue = cancelEvent;
// return cancelEvent;
// }
//
// @Override
// public Boolean getTestValue() { return this.eventFiredValue; }
//
//}
public class DhTestEvent extends DhApiTestEvent
{
public Boolean eventFiredValue = null;
@Override
public boolean test(Boolean cancelEvent)
{
this.eventFiredValue = cancelEvent;
return cancelEvent;
}
@Override
public Boolean getTestValue() { return this.eventFiredValue; }
@Override
public boolean removeAfterFiring() { return false; }
}
@@ -6,20 +6,23 @@ import testItems.eventInjection.abstractObjects.DhApiTestEvent;
* Dummy test event for unit tests.
*
* @author James Seibel
* @version 2022-7-16
* @version 2022-9-8
*/
//public class DhTestEventAlt extends DhApiTestEvent
//{
// public Boolean eventFiredValue = null;
//
// @Override
// public boolean test(Boolean cancelEvent)
// {
// this.eventFiredValue = cancelEvent;
// return cancelEvent;
// }
//
// @Override
// public Boolean getTestValue() { return this.eventFiredValue; }
//
//}
public class DhTestEventAlt extends DhApiTestEvent
{
public Boolean eventFiredValue = null;
@Override
public boolean test(Boolean cancelEvent)
{
this.eventFiredValue = cancelEvent;
return cancelEvent;
}
@Override
public Boolean getTestValue() { return this.eventFiredValue; }
@Override
public boolean removeAfterFiring() { return false; }
}
@@ -4,17 +4,14 @@ import com.seibel.lod.core.handlers.dependencyInjection.*;
import org.junit.Assert;
import org.junit.Test;
import testItems.overrideInjection.objects.OverrideTestCore;
import testItems.overrideInjection.objects.OverrideTestPrimary;
import testItems.eventInjection.abstractObjects.DhApiTestEvent;
import testItems.eventInjection.objects.DhTestEvent;
import testItems.eventInjection.objects.DhTestEventAlt;
import testItems.singletonInjection.interfaces.ISingletonTestOne;
import testItems.singletonInjection.interfaces.ISingletonTestTwo;
import testItems.singletonInjection.objects.ConcreteSingletonTestBoth;
import testItems.singletonInjection.objects.ConcreteSingletonTestOne;
import testItems.singletonInjection.objects.ConcreteSingletonTestTwo;
import testItems.eventInjection.abstractObjects.DhApiTestEvent;
import testItems.overrideInjection.interfaces.IOverrideTest;
import testItems.overrideInjection.objects.OverrideTestAssembly;
import testItems.worldGeneratorInjection.objects.*;
import java.util.ArrayList;
@@ -91,66 +88,66 @@ public class DependencyInjectorTest
}
// @Test
// public void testEventDependencies() // this also tests list dependencies since there can be more than one event handler bound per event
// {
// // Injector setup
// DhApiEventInjector TEST_EVENT_HANDLER = new DhApiEventInjector();
//
//
// // pre-dependency setup
// Assert.assertNull("Nothing should have been bound.", TEST_EVENT_HANDLER.get(DhApiTestEvent.class));
//
//
// // dependency setup
// TEST_EVENT_HANDLER.bind(DhApiTestEvent.class, new DhTestEvent());
// TEST_EVENT_HANDLER.bind(DhApiTestEvent.class, new DhTestEventAlt());
// TEST_EVENT_HANDLER.runDelayedSetup();
//
//
// // get first
// DhApiTestEvent afterRenderEvent = TEST_EVENT_HANDLER.get(DhApiTestEvent.class);
// Assert.assertNotNull("Event not bound.", afterRenderEvent);
//
//
// // get list
// ArrayList<DhApiTestEvent> afterRenderEventList = TEST_EVENT_HANDLER.getAll(DhApiTestEvent.class);
// Assert.assertEquals("Bound list doesn't contain the correct number of items.", 2, afterRenderEventList.size());
// // object one
// Assert.assertNotNull("Event not bound.", afterRenderEventList.get(0));
// Assert.assertEquals("First event object setup incorrectly.", null, afterRenderEventList.get(0).getTestValue());
// // object two
// Assert.assertNotNull("Event not bound.", afterRenderEventList.get(1));
// Assert.assertEquals("First event object setup incorrectly.", null, afterRenderEventList.get(1).getTestValue());
//
//
// // event firing
// Assert.assertEquals("fireAllEvents canceled returned canceled incorrectly.", true, TEST_EVENT_HANDLER.fireAllEvents(DhApiTestEvent.class, true));
// // object one
// Assert.assertEquals("Event not fired for first object.", true, afterRenderEventList.get(0).getTestValue());
// // object two
// Assert.assertEquals("Event not fired for second object.", true, afterRenderEventList.get(1).getTestValue());
//
//
// // unbind
// DhApiTestEvent unboundEvent = afterRenderEventList.get(0);
// Assert.assertTrue("Unbind should've removed item.", TEST_EVENT_HANDLER.unbind(DhApiTestEvent.class, DhTestEvent.class));
// Assert.assertFalse("Unbind should've already removed item.", TEST_EVENT_HANDLER.unbind(DhApiTestEvent.class, DhTestEvent.class));
//
// // check unbinding
// afterRenderEventList = TEST_EVENT_HANDLER.getAll(DhApiTestEvent.class);
// Assert.assertEquals("Unbound list doesn't contain the correct number of items.", 1, afterRenderEventList.size());
// Assert.assertNotNull("Unbinding removed all items.", afterRenderEventList.get(0));
//
//
// // check unbound event firing
// Assert.assertEquals("fireAllEvents canceled returned canceled incorrectly.", false, TEST_EVENT_HANDLER.fireAllEvents(DhApiTestEvent.class, false));
// // remaining event
// Assert.assertEquals("Event not fired for remaining object.", false, ((DhTestEventAlt) afterRenderEventList.get(0)).eventFiredValue);
// // unbound event
// Assert.assertEquals("Event fired for unbound object.", true, unboundEvent.getTestValue());
//
// }
@Test
public void testEventDependencies() // this also tests list dependencies since there can be more than one event handler bound per event
{
// Injector setup
DhApiEventInjector TEST_EVENT_HANDLER = new DhApiEventInjector();
// pre-dependency setup
Assert.assertNull("Nothing should have been bound.", TEST_EVENT_HANDLER.get(DhApiTestEvent.class));
// dependency setup
TEST_EVENT_HANDLER.bind(DhApiTestEvent.class, new DhTestEvent());
TEST_EVENT_HANDLER.bind(DhApiTestEvent.class, new DhTestEventAlt());
TEST_EVENT_HANDLER.runDelayedSetup();
// get first
DhApiTestEvent afterRenderEvent = TEST_EVENT_HANDLER.get(DhApiTestEvent.class);
Assert.assertNotNull("Event not bound.", afterRenderEvent);
// get list
ArrayList<DhApiTestEvent> afterRenderEventList = TEST_EVENT_HANDLER.getAll(DhApiTestEvent.class);
Assert.assertEquals("Bound list doesn't contain the correct number of items.", 2, afterRenderEventList.size());
// object one
Assert.assertNotNull("Event not bound.", afterRenderEventList.get(0));
Assert.assertEquals("First event object setup incorrectly.", null, afterRenderEventList.get(0).getTestValue());
// object two
Assert.assertNotNull("Event not bound.", afterRenderEventList.get(1));
Assert.assertEquals("First event object setup incorrectly.", null, afterRenderEventList.get(1).getTestValue());
// event firing
Assert.assertEquals("fireAllEvents canceled returned canceled incorrectly.", true, TEST_EVENT_HANDLER.fireAllEvents(DhApiTestEvent.class, true));
// object one
Assert.assertEquals("Event not fired for first object.", true, afterRenderEventList.get(0).getTestValue());
// object two
Assert.assertEquals("Event not fired for second object.", true, afterRenderEventList.get(1).getTestValue());
// unbind
DhApiTestEvent unboundEvent = afterRenderEventList.get(0);
Assert.assertTrue("Unbind should've removed item.", TEST_EVENT_HANDLER.unbind(DhApiTestEvent.class, DhTestEvent.class));
Assert.assertFalse("Unbind should've already removed item.", TEST_EVENT_HANDLER.unbind(DhApiTestEvent.class, DhTestEvent.class));
// check unbinding
afterRenderEventList = TEST_EVENT_HANDLER.getAll(DhApiTestEvent.class);
Assert.assertEquals("Unbound list doesn't contain the correct number of items.", 1, afterRenderEventList.size());
Assert.assertNotNull("Unbinding removed all items.", afterRenderEventList.get(0));
// check unbound event firing
Assert.assertEquals("fireAllEvents canceled returned canceled incorrectly.", false, TEST_EVENT_HANDLER.fireAllEvents(DhApiTestEvent.class, false));
// remaining event
Assert.assertEquals("Event not fired for remaining object.", false, ((DhTestEventAlt) afterRenderEventList.get(0)).eventFiredValue);
// unbound event
Assert.assertEquals("Event fired for unbound object.", true, unboundEvent.getTestValue());
}
// @Test
// public void testOverrideInjection()