diff --git a/test/poodinis/containertest.d b/test/poodinis/containertest.d index ac93206..457553e 100644 --- a/test/poodinis/containertest.d +++ b/test/poodinis/containertest.d @@ -18,15 +18,15 @@ version(unittest) { } } + // Test register concrete type unittest { - // Test register concrete type auto container = new Container(); auto registration = container.register!(TestClass)(); assert(registration.registeredType == typeid(TestClass), "Type of registered type not the same"); } + // Test resolve registered type unittest { - // Test resolve registered type auto container = new Container(); container.register!(TestClass)(); TestClass actualInstance = container.resolve!(TestClass)(); @@ -34,8 +34,8 @@ version(unittest) { assert(cast(TestClass) actualInstance, "Resolved class is not the same type as expected"); } + // Test register interface unittest { - // Test register interface auto container = new Container(); container.register!(TestInterface, TestClass)(); TestInterface actualInstance = container.resolve!(TestInterface)(); @@ -43,48 +43,48 @@ version(unittest) { assert(cast(TestInterface) actualInstance, "Resolved class is not the same type as expected"); } + // Test register unrelated types fails unittest { - // Test register unrelated types fails auto container = new Container(); assertThrown!RegistrationException(container.register!(UnrelatedClass, TestClass)(), "Registering unrelated types does not fail"); } + // Test register unrelated types with disabled check on registration unittest { - // Test register unrelated types with disabled check on registration auto container = new Container(); assertNotThrown!RegistrationException(container.register!(UnrelatedClass, TestClass)(false), "Registering unrelated types while disabling type validity fails"); } + // Test resolve non-registered type unittest { - // Test resolve non-registered type auto container = new Container(); assertThrown!ResolveException(container.resolve!(TestClass)(), "Resolving non-registered type does not fail"); } + // Test register unrelated class with disable global type validity disabled unittest { - // Test register unrelated class with disable global type validity disabled auto container = new Container(); container.typeValidityCheckEnabled = false; assertNotThrown!RegistrationException(container.register!(UnrelatedClass, TestClass)(), "Registering unrelated types while disabling global type validity fails"); } + // Test clear registrations unittest { - // Test clear registrations auto container = new Container(); container.register!(TestClass)(); container.clearRegistrations(); assertThrown!ResolveException(container.resolve!(TestClass)(), "Resolving cleared type does not fail"); } + // Test get singleton of container unittest { - // Test get singleton of container auto instance1 = Container.getInstance(); auto instance2 = Container.getInstance(); assert(instance1 is instance2, "getInstance does not return the same instance"); } + // Test registering concrete type does not do a validity check unittest { - // Test registering concrete type does not do a validity check auto container = new Container(); assert(container.typeValidityCheckEnabled); try {