From 6687bdb8b4da93fe6051fb7710636e2338e6038b Mon Sep 17 00:00:00 2001 From: Simon G Date: Wed, 8 Dec 2021 16:06:24 +0100 Subject: [PATCH] #51: add tests for withParameter and singleton registrations --- .../IocContainerTest.cs | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/Test.LightweightIocContainer/IocContainerTest.cs b/Test.LightweightIocContainer/IocContainerTest.cs index 517b7a7..3060668 100644 --- a/Test.LightweightIocContainer/IocContainerTest.cs +++ b/Test.LightweightIocContainer/IocContainerTest.cs @@ -68,12 +68,28 @@ namespace Test.LightweightIocContainer } } + [UsedImplicitly] + private class TestWithFoo : ITest + { + public TestWithFoo(IFoo foo) => Foo = foo; + public IFoo Foo { get; } + } + [UsedImplicitly] private class Foo : IFoo { } + [UsedImplicitly] + private class FooConstructor : IFoo + { + public FooConstructor(string test) + { + + } + } + private class MultitonScope { @@ -292,6 +308,30 @@ namespace Test.LightweightIocContainer Assert.NotNull(test); } + [Test] + public void TestResolveParameterIsRegisteredWithParameters() + { + _iocContainer.Register(); + _iocContainer.Register().WithParameters("TestString"); + + ITest test = _iocContainer.Resolve("testName"); + + Assert.IsInstanceOf(test); + } + + [Test] + public void TestResolveParameterWithParameterThatIsAlreadyExistingSingleton() + { + _iocContainer.Register(); + _iocContainer.Register(Lifestyle.Singleton).WithParameters("TestString"); + + IFoo foo = _iocContainer.Resolve(); + ITest test = _iocContainer.Resolve("testName"); + + Assert.IsInstanceOf(test); + Assert.AreSame(foo, ((TestWithFoo) test).Foo); + } + [Test] public void TestIsTypeRegistered() {