From d6765ac85a4329af4d7efe24853c93eb25742634 Mon Sep 17 00:00:00 2001 From: "Simon G." Date: Thu, 9 Jan 2025 08:51:52 +0100 Subject: [PATCH] - add another test case --- .../OpenGenericRegistrationTest.cs | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) 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