// Author: Simon.Gockner // Created: 2025-12-03 // Copyright(c) 2025 SimonG. All Rights Reserved. using LightweightIocContainer; using LightweightIocContainer.FactoryGenerator; using Test.LightweightIocContainer.FactoryGenerator.TestClasses; using Test.LightweightIocContainer.FactoryGenerator.TestClasses.Factories; using Test.LightweightIocContainer.FactoryGenerator.TestClasses.Interfaces; namespace Test.LightweightIocContainer.FactoryGenerator; [TestFixture] public class MultiLayerResolveTest { [Test] public void TestResolveFactoryAsCtorParameter() { IocContainer container = new(); container.Register(r => r.Add().WithGeneratedFactory()); container.Register(r => r.Add().WithGeneratedFactory()); IAFactory aFactory = container.Resolve(); IA a = aFactory.Create(); Assert.That(a, Is.InstanceOf()); } [Test] public void TestResolveSingleTypeRegistrationAsCtorParameter() { IocContainer container = new(); container.Register(r => r.Add()); container.Register(r => r.Add().WithGeneratedFactory()); container.Register(r => r.Add().WithFactoryMethod(_ => new C("test"))); IBFactory bFactory = container.Resolve(); IB b = bFactory.Create(); Assert.That(b, Is.InstanceOf()); } }