#51: add tests for withParameter and singleton registrations

pull/57/head
Simon G 4 years ago
parent 502df887ba
commit 6687bdb8b4
  1. 40
      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<ITest, TestConstructor>();
_iocContainer.Register<IFoo, FooConstructor>().WithParameters("TestString");
ITest test = _iocContainer.Resolve<ITest>("testName");
Assert.IsInstanceOf<TestConstructor>(test);
}
[Test]
public void TestResolveParameterWithParameterThatIsAlreadyExistingSingleton()
{
_iocContainer.Register<ITest, TestWithFoo>();
_iocContainer.Register<IFoo, FooConstructor>(Lifestyle.Singleton).WithParameters("TestString");
IFoo foo = _iocContainer.Resolve<IFoo>();
ITest test = _iocContainer.Resolve<ITest>("testName");
Assert.IsInstanceOf<TestWithFoo>(test);
Assert.AreSame(foo, ((TestWithFoo) test).Foo);
}
[Test]
public void TestIsTypeRegistered()
{

Loading…
Cancel
Save