|
|
|
@@ -1,15 +1,9 @@
|
|
|
|
|
package tests;
|
|
|
|
|
|
|
|
|
|
import com.seibel.lod.core.api.external.items.enums.override.EDhApiOverridePriority;
|
|
|
|
|
import com.seibel.lod.api.items.interfaces.override.IDhApiOverrideable;
|
|
|
|
|
import com.seibel.lod.api.items.interfaces.override.IDhApiWorldGenerator;
|
|
|
|
|
import com.seibel.lod.api.items.interfaces.world.IDhApiLevelWrapper;
|
|
|
|
|
import com.seibel.lod.core.handlers.dependencyInjection.*;
|
|
|
|
|
|
|
|
|
|
import org.junit.Assert;
|
|
|
|
|
import org.junit.Test;
|
|
|
|
|
import testItems.eventInjection.objects.DhTestEvent;
|
|
|
|
|
import testItems.eventInjection.objects.DhTestEventAlt;
|
|
|
|
|
import testItems.overrideInjection.objects.OverrideTestCore;
|
|
|
|
|
import testItems.overrideInjection.objects.OverrideTestPrimary;
|
|
|
|
|
import testItems.singletonInjection.interfaces.ISingletonTestOne;
|
|
|
|
@@ -97,236 +91,236 @@ 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()
|
|
|
|
|
{
|
|
|
|
|
OverrideInjector TEST_INJECTOR = new OverrideInjector(OverrideTestAssembly.getPackagePath(2));
|
|
|
|
|
OverrideInjector CORE_INJECTOR = new OverrideInjector();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// pre-dependency setup
|
|
|
|
|
Assert.assertNull("Nothing should have been bound.", TEST_INJECTOR.get(IOverrideTest.class));
|
|
|
|
|
Assert.assertNull("Nothing should have been bound.", CORE_INJECTOR.get(IOverrideTest.class));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// variables to use later
|
|
|
|
|
IOverrideTest override;
|
|
|
|
|
OverrideTestCore coreOverride = new OverrideTestCore();
|
|
|
|
|
OverrideTestPrimary primaryOverride = new OverrideTestPrimary();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// core override binding
|
|
|
|
|
try { TEST_INJECTOR.bind(IOverrideTest.class, coreOverride); } catch (IllegalArgumentException e) { Assert.fail("Core override should be bindable for test package injector."); }
|
|
|
|
|
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
CORE_INJECTOR.bind(IOverrideTest.class, coreOverride);
|
|
|
|
|
Assert.fail("Core override should not be bindable for core package injector.");
|
|
|
|
|
}
|
|
|
|
|
catch (IllegalArgumentException e) { /* this exception should be thrown */ }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// core override
|
|
|
|
|
Assert.assertNotNull("Test injector should've bound core override.", TEST_INJECTOR.get(IOverrideTest.class));
|
|
|
|
|
Assert.assertNull("Core injector should not have bound core override.", CORE_INJECTOR.get(IOverrideTest.class));
|
|
|
|
|
// priority gets
|
|
|
|
|
Assert.assertNotNull("Core override should be bound.", TEST_INJECTOR.get(IOverrideTest.class, OverrideInjector.CORE_PRIORITY));
|
|
|
|
|
Assert.assertNull("Non-core override should not be bound yet.", TEST_INJECTOR.get(IOverrideTest.class, OverrideInjector.CORE_PRIORITY));
|
|
|
|
|
// standard get
|
|
|
|
|
override = TEST_INJECTOR.get(IOverrideTest.class);
|
|
|
|
|
Assert.assertEquals("Override returned incorrect override type.", override.getPriority(), OverrideInjector.CORE_PRIORITY);
|
|
|
|
|
Assert.assertEquals("Incorrect override object returned.", override.getValue(), OverrideTestCore.VALUE);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// default override
|
|
|
|
|
TEST_INJECTOR.bind(IOverrideTest.class, primaryOverride);
|
|
|
|
|
// priority gets
|
|
|
|
|
Assert.assertNotNull("Test injector should've bound secondary override.", TEST_INJECTOR.get(IOverrideTest.class));
|
|
|
|
|
Assert.assertNotNull("Core override should be bound.", TEST_INJECTOR.get(IOverrideTest.class, OverrideInjector.CORE_PRIORITY));
|
|
|
|
|
Assert.assertNotNull("Secondary override should be bound.", TEST_INJECTOR.get(IOverrideTest.class, OverrideInjector.DEFAULT_NON_CORE_OVERRIDE_PRIORITY));
|
|
|
|
|
// standard get
|
|
|
|
|
override = TEST_INJECTOR.get(IOverrideTest.class);
|
|
|
|
|
Assert.assertEquals("Override returned incorrect override type.", override.getPriority(), OverrideInjector.DEFAULT_NON_CORE_OVERRIDE_PRIORITY);
|
|
|
|
|
Assert.assertEquals("Incorrect override object returned.", override.getValue(), OverrideTestPrimary.VALUE);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// in-line get
|
|
|
|
|
// (make sure the returned type is correct and compiles, the actual value doesn't matter)
|
|
|
|
|
TEST_INJECTOR.get(IOverrideTest.class).getValue();
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
// @Test
|
|
|
|
|
// public void testOverrideInjection()
|
|
|
|
|
// {
|
|
|
|
|
// OverrideInjector TEST_INJECTOR = new OverrideInjector(OverrideTestAssembly.getPackagePath(2));
|
|
|
|
|
// OverrideInjector CORE_INJECTOR = new OverrideInjector();
|
|
|
|
|
//
|
|
|
|
|
//
|
|
|
|
|
// // pre-dependency setup
|
|
|
|
|
// Assert.assertNull("Nothing should have been bound.", TEST_INJECTOR.get(IOverrideTest.class));
|
|
|
|
|
// Assert.assertNull("Nothing should have been bound.", CORE_INJECTOR.get(IOverrideTest.class));
|
|
|
|
|
//
|
|
|
|
|
//
|
|
|
|
|
// // variables to use later
|
|
|
|
|
// IOverrideTest override;
|
|
|
|
|
// OverrideTestCore coreOverride = new OverrideTestCore();
|
|
|
|
|
// OverrideTestPrimary primaryOverride = new OverrideTestPrimary();
|
|
|
|
|
//
|
|
|
|
|
//
|
|
|
|
|
// // core override binding
|
|
|
|
|
// try { TEST_INJECTOR.bind(IOverrideTest.class, coreOverride); } catch (IllegalArgumentException e) { Assert.fail("Core override should be bindable for test package injector."); }
|
|
|
|
|
//
|
|
|
|
|
// try
|
|
|
|
|
// {
|
|
|
|
|
// CORE_INJECTOR.bind(IOverrideTest.class, coreOverride);
|
|
|
|
|
// Assert.fail("Core override should not be bindable for core package injector.");
|
|
|
|
|
// }
|
|
|
|
|
// catch (IllegalArgumentException e) { /* this exception should be thrown */ }
|
|
|
|
|
//
|
|
|
|
|
//
|
|
|
|
|
// // core override
|
|
|
|
|
// Assert.assertNotNull("Test injector should've bound core override.", TEST_INJECTOR.get(IOverrideTest.class));
|
|
|
|
|
// Assert.assertNull("Core injector should not have bound core override.", CORE_INJECTOR.get(IOverrideTest.class));
|
|
|
|
|
// // priority gets
|
|
|
|
|
// Assert.assertNotNull("Core override should be bound.", TEST_INJECTOR.get(IOverrideTest.class, OverrideInjector.CORE_PRIORITY));
|
|
|
|
|
// Assert.assertNull("Non-core override should not be bound yet.", TEST_INJECTOR.get(IOverrideTest.class, OverrideInjector.CORE_PRIORITY));
|
|
|
|
|
// // standard get
|
|
|
|
|
// override = TEST_INJECTOR.get(IOverrideTest.class);
|
|
|
|
|
// Assert.assertEquals("Override returned incorrect override type.", override.getPriority(), OverrideInjector.CORE_PRIORITY);
|
|
|
|
|
// Assert.assertEquals("Incorrect override object returned.", override.getValue(), OverrideTestCore.VALUE);
|
|
|
|
|
//
|
|
|
|
|
//
|
|
|
|
|
// // default override
|
|
|
|
|
// TEST_INJECTOR.bind(IOverrideTest.class, primaryOverride);
|
|
|
|
|
// // priority gets
|
|
|
|
|
// Assert.assertNotNull("Test injector should've bound secondary override.", TEST_INJECTOR.get(IOverrideTest.class));
|
|
|
|
|
// Assert.assertNotNull("Core override should be bound.", TEST_INJECTOR.get(IOverrideTest.class, OverrideInjector.CORE_PRIORITY));
|
|
|
|
|
// Assert.assertNotNull("Secondary override should be bound.", TEST_INJECTOR.get(IOverrideTest.class, OverrideInjector.DEFAULT_NON_CORE_OVERRIDE_PRIORITY));
|
|
|
|
|
// // standard get
|
|
|
|
|
// override = TEST_INJECTOR.get(IOverrideTest.class);
|
|
|
|
|
// Assert.assertEquals("Override returned incorrect override type.", override.getPriority(), OverrideInjector.DEFAULT_NON_CORE_OVERRIDE_PRIORITY);
|
|
|
|
|
// Assert.assertEquals("Incorrect override object returned.", override.getValue(), OverrideTestPrimary.VALUE);
|
|
|
|
|
//
|
|
|
|
|
//
|
|
|
|
|
// // in-line get
|
|
|
|
|
// // (make sure the returned type is correct and compiles, the actual value doesn't matter)
|
|
|
|
|
// TEST_INJECTOR.get(IOverrideTest.class).getValue();
|
|
|
|
|
//
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
public void testBackupWorldGeneratorInjection()
|
|
|
|
|
{
|
|
|
|
|
WorldGeneratorInjector TEST_INJECTOR = new WorldGeneratorInjector(WorldGeneratorTestAssembly.getPackagePath(2));
|
|
|
|
|
WorldGeneratorInjector CORE_INJECTOR = new WorldGeneratorInjector();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// pre-dependency setup
|
|
|
|
|
Assert.assertNull("Nothing should have been bound.", TEST_INJECTOR.get());
|
|
|
|
|
Assert.assertNull("Nothing should have been bound.", CORE_INJECTOR.get());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// variables to use later
|
|
|
|
|
IDhApiWorldGenerator generator;
|
|
|
|
|
WorldGeneratorTestCore coreGenerator = new WorldGeneratorTestCore();
|
|
|
|
|
WorldGeneratorTestSecondary secondaryGenerator = new WorldGeneratorTestSecondary();
|
|
|
|
|
WorldGeneratorTestPrimary primaryGenerator = new WorldGeneratorTestPrimary();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// core generator binding
|
|
|
|
|
try { TEST_INJECTOR.bind(coreGenerator); } catch (IllegalArgumentException e) { Assert.fail("Core generator should be bindable for test package injector."); }
|
|
|
|
|
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
CORE_INJECTOR.bind(coreGenerator);
|
|
|
|
|
Assert.fail("Core generator should not be bindable for core package injector.");
|
|
|
|
|
}
|
|
|
|
|
catch (IllegalArgumentException e) { /* this exception should be thrown */ }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// core override
|
|
|
|
|
Assert.assertNotNull("Test injector should've bound core override.", TEST_INJECTOR.get());
|
|
|
|
|
Assert.assertNull("Core injector should not have bound core override.", CORE_INJECTOR.get());
|
|
|
|
|
// standard get
|
|
|
|
|
generator = TEST_INJECTOR.get();
|
|
|
|
|
Assert.assertEquals("Override returned incorrect override type.", generator.getOverrideType(), EDhApiOverridePriority.CORE);
|
|
|
|
|
Assert.assertEquals("Incorrect generator returned.", generator.getThreadingMode(), WorldGeneratorTestCore.THREAD_MODE);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// secondary override
|
|
|
|
|
TEST_INJECTOR.bind(secondaryGenerator);
|
|
|
|
|
// priority gets
|
|
|
|
|
generator = TEST_INJECTOR.get();
|
|
|
|
|
Assert.assertEquals("Override returned incorrect override type.", generator.getOverrideType(), EDhApiOverridePriority.SECONDARY);
|
|
|
|
|
Assert.assertEquals("Incorrect override object returned.", generator.getThreadingMode(), WorldGeneratorTestSecondary.THREAD_MODE);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// primary override
|
|
|
|
|
TEST_INJECTOR.bind(primaryGenerator);
|
|
|
|
|
// priority gets
|
|
|
|
|
generator = TEST_INJECTOR.get();
|
|
|
|
|
Assert.assertEquals("Override returned incorrect override type.", generator.getOverrideType(), EDhApiOverridePriority.PRIMARY);
|
|
|
|
|
Assert.assertEquals("Incorrect override object returned.", generator.getThreadingMode(), WorldGeneratorTestPrimary.THREAD_MODE);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// in-line get
|
|
|
|
|
// (make sure the returned type is correct and compiles, the actual value doesn't matter)
|
|
|
|
|
TEST_INJECTOR.get().getThreadingMode();
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
public void testSpecificLevelWorldGeneratorInjection()
|
|
|
|
|
{
|
|
|
|
|
WorldGeneratorInjector TEST_INJECTOR = new WorldGeneratorInjector(WorldGeneratorTestAssembly.getPackagePath(2));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// pre-dependency setup
|
|
|
|
|
Assert.assertNull("Nothing should have been bound.", TEST_INJECTOR.get());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// variables to use later
|
|
|
|
|
IDhApiWorldGenerator generator;
|
|
|
|
|
WorldGeneratorTestCore backupGenerator = new WorldGeneratorTestCore();
|
|
|
|
|
WorldGeneratorTestPrimary levelGenerator = new WorldGeneratorTestPrimary();
|
|
|
|
|
|
|
|
|
|
IDhApiLevelWrapper boundLevel = new LevelWrapperTest();
|
|
|
|
|
IDhApiLevelWrapper unboundLevel = new LevelWrapperTest();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// backup generator binding
|
|
|
|
|
try { TEST_INJECTOR.bind(backupGenerator); } catch (IllegalArgumentException e) { Assert.fail("Core generator should be bindable for test package injector."); }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// get backup generator
|
|
|
|
|
generator = TEST_INJECTOR.get();
|
|
|
|
|
Assert.assertNotNull("Backup generator not bound.", generator);
|
|
|
|
|
Assert.assertEquals("Incorrect backup generator bound.", generator.getOverrideType(), EDhApiOverridePriority.CORE);
|
|
|
|
|
Assert.assertEquals("Incorrect backup generator bound.", generator.getThreadingMode(), WorldGeneratorTestCore.THREAD_MODE);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// bind level specific
|
|
|
|
|
try { TEST_INJECTOR.bind(boundLevel, levelGenerator); } catch (IllegalArgumentException e) { Assert.fail("Core generator should be bindable for test package injector."); }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// get bound level generator
|
|
|
|
|
generator = TEST_INJECTOR.get(boundLevel);
|
|
|
|
|
Assert.assertNotNull("Level generator not bound.", generator);
|
|
|
|
|
Assert.assertEquals("Incorrect level generator bound.", generator.getOverrideType(), EDhApiOverridePriority.PRIMARY);
|
|
|
|
|
Assert.assertEquals("Incorrect level generator bound.", generator.getThreadingMode(), WorldGeneratorTestPrimary.THREAD_MODE);
|
|
|
|
|
|
|
|
|
|
// get unbound level generator
|
|
|
|
|
generator = TEST_INJECTOR.get(unboundLevel);
|
|
|
|
|
Assert.assertNotNull("Backup level generator not bound.", generator);
|
|
|
|
|
Assert.assertEquals("Incorrect level generator bound.", generator.getOverrideType(), EDhApiOverridePriority.CORE);
|
|
|
|
|
Assert.assertEquals("Incorrect level generator bound.", generator.getThreadingMode(), WorldGeneratorTestCore.THREAD_MODE);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
// @Test
|
|
|
|
|
// public void testBackupWorldGeneratorInjection()
|
|
|
|
|
// {
|
|
|
|
|
// WorldGeneratorInjector TEST_INJECTOR = new WorldGeneratorInjector(WorldGeneratorTestAssembly.getPackagePath(2));
|
|
|
|
|
// WorldGeneratorInjector CORE_INJECTOR = new WorldGeneratorInjector();
|
|
|
|
|
//
|
|
|
|
|
//
|
|
|
|
|
// // pre-dependency setup
|
|
|
|
|
// Assert.assertNull("Nothing should have been bound.", TEST_INJECTOR.get());
|
|
|
|
|
// Assert.assertNull("Nothing should have been bound.", CORE_INJECTOR.get());
|
|
|
|
|
//
|
|
|
|
|
//
|
|
|
|
|
// // variables to use later
|
|
|
|
|
// IDhApiWorldGenerator generator;
|
|
|
|
|
// WorldGeneratorTestCore coreGenerator = new WorldGeneratorTestCore();
|
|
|
|
|
// WorldGeneratorTestSecondary secondaryGenerator = new WorldGeneratorTestSecondary();
|
|
|
|
|
// WorldGeneratorTestPrimary primaryGenerator = new WorldGeneratorTestPrimary();
|
|
|
|
|
//
|
|
|
|
|
//
|
|
|
|
|
// // core generator binding
|
|
|
|
|
// try { TEST_INJECTOR.bind(coreGenerator); } catch (IllegalArgumentException e) { Assert.fail("Core generator should be bindable for test package injector."); }
|
|
|
|
|
//
|
|
|
|
|
// try
|
|
|
|
|
// {
|
|
|
|
|
// CORE_INJECTOR.bind(coreGenerator);
|
|
|
|
|
// Assert.fail("Core generator should not be bindable for core package injector.");
|
|
|
|
|
// }
|
|
|
|
|
// catch (IllegalArgumentException e) { /* this exception should be thrown */ }
|
|
|
|
|
//
|
|
|
|
|
//
|
|
|
|
|
// // core override
|
|
|
|
|
// Assert.assertNotNull("Test injector should've bound core override.", TEST_INJECTOR.get());
|
|
|
|
|
// Assert.assertNull("Core injector should not have bound core override.", CORE_INJECTOR.get());
|
|
|
|
|
// // standard get
|
|
|
|
|
// generator = TEST_INJECTOR.get();
|
|
|
|
|
// Assert.assertEquals("Override returned incorrect override type.", generator.getOverrideType(), EDhApiOverridePriority.CORE);
|
|
|
|
|
// Assert.assertEquals("Incorrect generator returned.", generator.getThreadingMode(), WorldGeneratorTestCore.THREAD_MODE);
|
|
|
|
|
//
|
|
|
|
|
//
|
|
|
|
|
// // secondary override
|
|
|
|
|
// TEST_INJECTOR.bind(secondaryGenerator);
|
|
|
|
|
// // priority gets
|
|
|
|
|
// generator = TEST_INJECTOR.get();
|
|
|
|
|
// Assert.assertEquals("Override returned incorrect override type.", generator.getOverrideType(), EDhApiOverridePriority.SECONDARY);
|
|
|
|
|
// Assert.assertEquals("Incorrect override object returned.", generator.getThreadingMode(), WorldGeneratorTestSecondary.THREAD_MODE);
|
|
|
|
|
//
|
|
|
|
|
//
|
|
|
|
|
// // primary override
|
|
|
|
|
// TEST_INJECTOR.bind(primaryGenerator);
|
|
|
|
|
// // priority gets
|
|
|
|
|
// generator = TEST_INJECTOR.get();
|
|
|
|
|
// Assert.assertEquals("Override returned incorrect override type.", generator.getOverrideType(), EDhApiOverridePriority.PRIMARY);
|
|
|
|
|
// Assert.assertEquals("Incorrect override object returned.", generator.getThreadingMode(), WorldGeneratorTestPrimary.THREAD_MODE);
|
|
|
|
|
//
|
|
|
|
|
//
|
|
|
|
|
//
|
|
|
|
|
// // in-line get
|
|
|
|
|
// // (make sure the returned type is correct and compiles, the actual value doesn't matter)
|
|
|
|
|
// TEST_INJECTOR.get().getThreadingMode();
|
|
|
|
|
//
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// @Test
|
|
|
|
|
// public void testSpecificLevelWorldGeneratorInjection()
|
|
|
|
|
// {
|
|
|
|
|
// WorldGeneratorInjector TEST_INJECTOR = new WorldGeneratorInjector(WorldGeneratorTestAssembly.getPackagePath(2));
|
|
|
|
|
//
|
|
|
|
|
//
|
|
|
|
|
// // pre-dependency setup
|
|
|
|
|
// Assert.assertNull("Nothing should have been bound.", TEST_INJECTOR.get());
|
|
|
|
|
//
|
|
|
|
|
//
|
|
|
|
|
// // variables to use later
|
|
|
|
|
// IDhApiWorldGenerator generator;
|
|
|
|
|
// WorldGeneratorTestCore backupGenerator = new WorldGeneratorTestCore();
|
|
|
|
|
// WorldGeneratorTestPrimary levelGenerator = new WorldGeneratorTestPrimary();
|
|
|
|
|
//
|
|
|
|
|
// IDhApiLevelWrapper boundLevel = new LevelWrapperTest();
|
|
|
|
|
// IDhApiLevelWrapper unboundLevel = new LevelWrapperTest();
|
|
|
|
|
//
|
|
|
|
|
//
|
|
|
|
|
//
|
|
|
|
|
// // backup generator binding
|
|
|
|
|
// try { TEST_INJECTOR.bind(backupGenerator); } catch (IllegalArgumentException e) { Assert.fail("Core generator should be bindable for test package injector."); }
|
|
|
|
|
//
|
|
|
|
|
//
|
|
|
|
|
// // get backup generator
|
|
|
|
|
// generator = TEST_INJECTOR.get();
|
|
|
|
|
// Assert.assertNotNull("Backup generator not bound.", generator);
|
|
|
|
|
// Assert.assertEquals("Incorrect backup generator bound.", generator.getOverrideType(), EDhApiOverridePriority.CORE);
|
|
|
|
|
// Assert.assertEquals("Incorrect backup generator bound.", generator.getThreadingMode(), WorldGeneratorTestCore.THREAD_MODE);
|
|
|
|
|
//
|
|
|
|
|
//
|
|
|
|
|
// // bind level specific
|
|
|
|
|
// try { TEST_INJECTOR.bind(boundLevel, levelGenerator); } catch (IllegalArgumentException e) { Assert.fail("Core generator should be bindable for test package injector."); }
|
|
|
|
|
//
|
|
|
|
|
//
|
|
|
|
|
// // get bound level generator
|
|
|
|
|
// generator = TEST_INJECTOR.get(boundLevel);
|
|
|
|
|
// Assert.assertNotNull("Level generator not bound.", generator);
|
|
|
|
|
// Assert.assertEquals("Incorrect level generator bound.", generator.getOverrideType(), EDhApiOverridePriority.PRIMARY);
|
|
|
|
|
// Assert.assertEquals("Incorrect level generator bound.", generator.getThreadingMode(), WorldGeneratorTestPrimary.THREAD_MODE);
|
|
|
|
|
//
|
|
|
|
|
// // get unbound level generator
|
|
|
|
|
// generator = TEST_INJECTOR.get(unboundLevel);
|
|
|
|
|
// Assert.assertNotNull("Backup level generator not bound.", generator);
|
|
|
|
|
// Assert.assertEquals("Incorrect level generator bound.", generator.getOverrideType(), EDhApiOverridePriority.CORE);
|
|
|
|
|
// Assert.assertEquals("Incorrect level generator bound.", generator.getThreadingMode(), WorldGeneratorTestCore.THREAD_MODE);
|
|
|
|
|
//
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|