Fix incorrect API tests (and move them to the API sub-project)

This commit is contained in:
James Seibel
2022-09-11 22:25:22 -05:00
parent d21e334e15
commit 14b855ada6
9 changed files with 200 additions and 160 deletions
@@ -1,37 +0,0 @@
package testItems.eventInjection.abstractObjects;
import com.seibel.lod.core.api.external.coreImplementations.interfaces.events.ICoreDhApiEvent;
/**
* A dummy event implementation used for unit testing.
*
* @author James Seibel
* @version 2022-9-8
*/
public abstract class DhApiTestEvent implements ICoreDhApiEvent<Boolean>
{
/**
* Test event.
*
* @return whether the event should be canceled or not.
*/
public abstract boolean test(Boolean input);
/**
* Normal DhApiEvent classes shouldn't have any other methods like this.
* This is just for testing.
*/
public abstract Boolean getTestValue();
//=========================//
// internal DH API methods //
//=========================//
@Override
public final boolean fireEvent(Boolean input) { return test(input); }
@Override
public final boolean getCancelable() { return true; }
}
@@ -1,28 +0,0 @@
package testItems.eventInjection.objects;
import testItems.eventInjection.abstractObjects.DhApiTestEvent;
/**
* Dummy test event for unit tests.
*
* @author James Seibel
* @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; }
@Override
public boolean removeAfterFiring() { return false; }
}
@@ -1,28 +0,0 @@
package testItems.eventInjection.objects;
import testItems.eventInjection.abstractObjects.DhApiTestEvent;
/**
* Dummy test event for unit tests.
*
* @author James Seibel
* @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; }
@Override
public boolean removeAfterFiring() { return false; }
}
@@ -7,9 +7,6 @@ import com.seibel.lod.core.handlers.dependencyInjection.*;
import org.junit.Assert;
import org.junit.Test;
import testItems.eventInjection.abstractObjects.DhApiTestEvent;
import testItems.eventInjection.objects.DhTestEvent;
import testItems.eventInjection.objects.DhTestEventAlt;
import testItems.overrideInjection.interfaces.IOverrideTest;
import testItems.overrideInjection.objects.OverrideTestAssembly;
import testItems.overrideInjection.objects.OverrideTestCore;
@@ -21,12 +18,10 @@ import testItems.singletonInjection.objects.ConcreteSingletonTestOne;
import testItems.singletonInjection.objects.ConcreteSingletonTestTwo;
import testItems.worldGeneratorInjection.objects.*;
import java.util.ArrayList;
/**
* @author James Seibel
* @version 2022-9-5
* @version 2022-9-11
*/
public class DependencyInjectorTest
{
@@ -96,67 +91,6 @@ 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 testOverrideInjection()
{