diff --git a/src/main/java/com/seibel/lod/core/util/StringUtil.java b/src/main/java/com/seibel/lod/core/util/StringUtil.java
index 9f8965ed1..976c7fe16 100644
--- a/src/main/java/com/seibel/lod/core/util/StringUtil.java
+++ b/src/main/java/com/seibel/lod/core/util/StringUtil.java
@@ -23,12 +23,12 @@ package com.seibel.lod.core.util;
* Miscellaneous string helper functions.
*
* @author James Seibel
- * @version 2022-7-18
+ * @version 2022-7-19
*/
public class StringUtil
{
/**
- * Returns the n-th index of the given string
+ * Returns the n-th index of the given string.
*
* Original source: https://stackoverflow.com/questions/3976616/how-to-find-nth-occurrence-of-character-in-a-string
*/
diff --git a/src/test/java/testItems/dependencyInjection/objects/DhApiTestEvent.java b/src/test/java/testItems/eventInjection/abstractObjects/DhApiTestEvent.java
similarity index 94%
rename from src/test/java/testItems/dependencyInjection/objects/DhApiTestEvent.java
rename to src/test/java/testItems/eventInjection/abstractObjects/DhApiTestEvent.java
index fac658710..26967726f 100644
--- a/src/test/java/testItems/dependencyInjection/objects/DhApiTestEvent.java
+++ b/src/test/java/testItems/eventInjection/abstractObjects/DhApiTestEvent.java
@@ -1,4 +1,4 @@
-package testItems.dependencyInjection.objects;
+package testItems.eventInjection.abstractObjects;
import com.seibel.lod.core.api.implementation.interfaces.events.IDhApiEvent;
diff --git a/src/test/java/testItems/dependencyInjection/implementations/DhTestEvent.java b/src/test/java/testItems/eventInjection/objects/DhTestEvent.java
similarity index 76%
rename from src/test/java/testItems/dependencyInjection/implementations/DhTestEvent.java
rename to src/test/java/testItems/eventInjection/objects/DhTestEvent.java
index 3eff18296..4454d883b 100644
--- a/src/test/java/testItems/dependencyInjection/implementations/DhTestEvent.java
+++ b/src/test/java/testItems/eventInjection/objects/DhTestEvent.java
@@ -1,6 +1,6 @@
-package testItems.dependencyInjection.implementations;
+package testItems.eventInjection.objects;
-import testItems.dependencyInjection.objects.DhApiTestEvent;
+import testItems.eventInjection.abstractObjects.DhApiTestEvent;
/**
* Dummy test event for unit tests.
diff --git a/src/test/java/testItems/dependencyInjection/implementations/DhTestEventAlt.java b/src/test/java/testItems/eventInjection/objects/DhTestEventAlt.java
similarity index 77%
rename from src/test/java/testItems/dependencyInjection/implementations/DhTestEventAlt.java
rename to src/test/java/testItems/eventInjection/objects/DhTestEventAlt.java
index f6ef22f85..6cf7df81f 100644
--- a/src/test/java/testItems/dependencyInjection/implementations/DhTestEventAlt.java
+++ b/src/test/java/testItems/eventInjection/objects/DhTestEventAlt.java
@@ -1,6 +1,6 @@
-package testItems.dependencyInjection.implementations;
+package testItems.eventInjection.objects;
-import testItems.dependencyInjection.objects.DhApiTestEvent;
+import testItems.eventInjection.abstractObjects.DhApiTestEvent;
/**
* Dummy test event for unit tests.
diff --git a/src/test/java/testItems/dependencyInjection/interfaces/ISingletonTestOne.java b/src/test/java/testItems/singletonInjection/interfaces/ISingletonTestOne.java
similarity index 85%
rename from src/test/java/testItems/dependencyInjection/interfaces/ISingletonTestOne.java
rename to src/test/java/testItems/singletonInjection/interfaces/ISingletonTestOne.java
index 72ec0f6fa..2866816a5 100644
--- a/src/test/java/testItems/dependencyInjection/interfaces/ISingletonTestOne.java
+++ b/src/test/java/testItems/singletonInjection/interfaces/ISingletonTestOne.java
@@ -1,4 +1,4 @@
-package testItems.dependencyInjection.interfaces;
+package testItems.singletonInjection.interfaces;
import com.seibel.lod.core.handlers.dependencyInjection.IBindable;
diff --git a/src/test/java/testItems/dependencyInjection/interfaces/ISingletonTestTwo.java b/src/test/java/testItems/singletonInjection/interfaces/ISingletonTestTwo.java
similarity index 85%
rename from src/test/java/testItems/dependencyInjection/interfaces/ISingletonTestTwo.java
rename to src/test/java/testItems/singletonInjection/interfaces/ISingletonTestTwo.java
index 067b4b236..e74bb4799 100644
--- a/src/test/java/testItems/dependencyInjection/interfaces/ISingletonTestTwo.java
+++ b/src/test/java/testItems/singletonInjection/interfaces/ISingletonTestTwo.java
@@ -1,4 +1,4 @@
-package testItems.dependencyInjection.interfaces;
+package testItems.singletonInjection.interfaces;
import com.seibel.lod.core.handlers.dependencyInjection.IBindable;
diff --git a/src/test/java/testItems/dependencyInjection/objects/ConcreteSingletonTestBoth.java b/src/test/java/testItems/singletonInjection/objects/ConcreteSingletonTestBoth.java
similarity index 73%
rename from src/test/java/testItems/dependencyInjection/objects/ConcreteSingletonTestBoth.java
rename to src/test/java/testItems/singletonInjection/objects/ConcreteSingletonTestBoth.java
index 063b7844e..8f894d9e4 100644
--- a/src/test/java/testItems/dependencyInjection/objects/ConcreteSingletonTestBoth.java
+++ b/src/test/java/testItems/singletonInjection/objects/ConcreteSingletonTestBoth.java
@@ -1,8 +1,8 @@
-package testItems.dependencyInjection.objects;
+package testItems.singletonInjection.objects;
import com.seibel.lod.core.handlers.dependencyInjection.IBindable;
-import testItems.dependencyInjection.interfaces.ISingletonTestOne;
-import testItems.dependencyInjection.interfaces.ISingletonTestTwo;
+import testItems.singletonInjection.interfaces.ISingletonTestOne;
+import testItems.singletonInjection.interfaces.ISingletonTestTwo;
/**
* Dummy test implementation object for dependency injection unit tests.
diff --git a/src/test/java/testItems/dependencyInjection/objects/ConcreteSingletonTestOne.java b/src/test/java/testItems/singletonInjection/objects/ConcreteSingletonTestOne.java
similarity index 80%
rename from src/test/java/testItems/dependencyInjection/objects/ConcreteSingletonTestOne.java
rename to src/test/java/testItems/singletonInjection/objects/ConcreteSingletonTestOne.java
index eddae834e..bcf3e0930 100644
--- a/src/test/java/testItems/dependencyInjection/objects/ConcreteSingletonTestOne.java
+++ b/src/test/java/testItems/singletonInjection/objects/ConcreteSingletonTestOne.java
@@ -1,8 +1,8 @@
-package testItems.dependencyInjection.objects;
+package testItems.singletonInjection.objects;
import com.seibel.lod.core.handlers.dependencyInjection.IBindable;
-import testItems.dependencyInjection.interfaces.ISingletonTestOne;
-import testItems.dependencyInjection.interfaces.ISingletonTestTwo;
+import testItems.singletonInjection.interfaces.ISingletonTestOne;
+import testItems.singletonInjection.interfaces.ISingletonTestTwo;
import tests.DependencyInjectorTest;
/**
diff --git a/src/test/java/testItems/dependencyInjection/objects/ConcreteSingletonTestTwo.java b/src/test/java/testItems/singletonInjection/objects/ConcreteSingletonTestTwo.java
similarity index 80%
rename from src/test/java/testItems/dependencyInjection/objects/ConcreteSingletonTestTwo.java
rename to src/test/java/testItems/singletonInjection/objects/ConcreteSingletonTestTwo.java
index 060e6d38b..578b0de2a 100644
--- a/src/test/java/testItems/dependencyInjection/objects/ConcreteSingletonTestTwo.java
+++ b/src/test/java/testItems/singletonInjection/objects/ConcreteSingletonTestTwo.java
@@ -1,8 +1,8 @@
-package testItems.dependencyInjection.objects;
+package testItems.singletonInjection.objects;
import com.seibel.lod.core.handlers.dependencyInjection.IBindable;
-import testItems.dependencyInjection.interfaces.ISingletonTestOne;
-import testItems.dependencyInjection.interfaces.ISingletonTestTwo;
+import testItems.singletonInjection.interfaces.ISingletonTestOne;
+import testItems.singletonInjection.interfaces.ISingletonTestTwo;
import tests.DependencyInjectorTest;
/**
diff --git a/src/test/java/tests/DependencyInjectorTest.java b/src/test/java/tests/DependencyInjectorTest.java
index 4ccd7c07a..c7d8b9b20 100644
--- a/src/test/java/tests/DependencyInjectorTest.java
+++ b/src/test/java/tests/DependencyInjectorTest.java
@@ -4,16 +4,19 @@ import com.seibel.lod.core.handlers.dependencyInjection.DependencyInjector;
import com.seibel.lod.core.handlers.dependencyInjection.DhApiEventInjector;
import com.seibel.lod.core.handlers.dependencyInjection.IBindable;
+import com.seibel.lod.core.handlers.dependencyInjection.OverrideInjector;
import org.junit.Assert;
import org.junit.Test;
-import testItems.dependencyInjection.implementations.DhTestEvent;
-import testItems.dependencyInjection.implementations.DhTestEventAlt;
-import testItems.dependencyInjection.interfaces.ISingletonTestOne;
-import testItems.dependencyInjection.interfaces.ISingletonTestTwo;
-import testItems.dependencyInjection.objects.ConcreteSingletonTestBoth;
-import testItems.dependencyInjection.objects.ConcreteSingletonTestOne;
-import testItems.dependencyInjection.objects.ConcreteSingletonTestTwo;
-import testItems.dependencyInjection.objects.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 java.util.ArrayList;
@@ -28,11 +31,11 @@ public class DependencyInjectorTest
@Test
public void testSingleImplementationSingleton()
{
- // clear the previous dependencies and only allow single dependencies
+ // Injector setup
DependencyInjector TEST_SINGLETON_HANDLER = new DependencyInjector<>(IBindable.class, false);
- // pre-setup
+ // pre-dependency setup
Assert.assertNull(ISingletonTestOne.class.getSimpleName() + " should not have been bound.", TEST_SINGLETON_HANDLER.get(ISingletonTestOne.class));
@@ -62,11 +65,11 @@ public class DependencyInjectorTest
@Test
public void testMultipleImplementationSingleton()
{
- // clear the previous dependencies and only allow single dependencies
+ // Injector setup
DependencyInjector TEST_SINGLETON_HANDLER = new DependencyInjector(IBindable.class, false);
- // pre-setup
+ // pre-dependency setup
Assert.assertNull(ISingletonTestOne.class.getSimpleName() + " should not have been bound.", TEST_SINGLETON_HANDLER.get(ISingletonTestOne.class));
@@ -91,13 +94,12 @@ public class DependencyInjectorTest
@Test
public void testEventDependencies() // this also tests list dependencies since there can be more than one event handler bound per event
{
- // clear the previous dependencies and only allow single dependencies
+ // Injector setup
DependencyInjector TEST_SINGLETON_HANDLER = new DependencyInjector<>(IBindable.class, false);
- // setup the list (event) dependency handler
DhApiEventInjector TEST_EVENT_HANDLER = new DhApiEventInjector();
- // pre-setup
+ // pre-dependency setup
Assert.assertNull("Nothing should have been bound.", TEST_EVENT_HANDLER.get(DhApiTestEvent.class));
@@ -151,6 +153,11 @@ public class DependencyInjectorTest
}
+ Assert.assertNotNull(ISingletonTestTwo.class.getSimpleName() + " not bound.", testInterTwo);
+ Assert.assertEquals(ISingletonTestTwo.class.getSimpleName() + " incorrect value.", testInterTwo.getValue(), ConcreteSingletonTestBoth.VALUE);
+
+ }
+
}