diff --git a/Test.LightweightIocContainer/OpenGenericRegistrationTest.cs b/Test.LightweightIocContainer/OpenGenericRegistrationTest.cs index 8b09088..79e6287 100644 --- a/Test.LightweightIocContainer/OpenGenericRegistrationTest.cs +++ b/Test.LightweightIocContainer/OpenGenericRegistrationTest.cs @@ -75,6 +75,18 @@ public class OpenGenericRegistrationTest { public ITest Test { get; } = test; } + + [UsedImplicitly] + public interface IGenericClass where T : IConstraint, new() + { + ITest Test { get; } + } + + [UsedImplicitly] + public class GenericClass(ITest test) : IGenericClass where T : IConstraint, new() + { + public ITest Test { get; } = test; + } [SetUp] public void SetUp() => _iocContainer = new IocContainer(); @@ -157,4 +169,14 @@ public class OpenGenericRegistrationTest Assert.That(b.Test, Is.Not.SameAs(a.Test)); } + + [Test] + public void TestOpenGenericTypeAsGenericParameter() + { + _iocContainer.Register(r => r.AddOpenGenerics(typeof(IGenericClass<>), typeof(GenericClass<>))); + _iocContainer.Register(r => r.AddOpenGenerics(typeof(ITest<>), typeof(Test<>), Lifestyle.Singleton)); + + IGenericClass genericClass = _iocContainer.Resolve>(); + Assert.That(genericClass, Is.InstanceOf>()); + } } \ No newline at end of file