using NUnit.Framework; using Assert = ModestTree.Assert; namespace Zenject.Tests.Other { [TestFixture] public class TestCircularDependencies : ZenjectUnitTestFixture { [Test] public void TestThrows() { Container.Bind().AsSingle(); Container.Bind().AsSingle(); Assert.Throws(() => Container.Resolve()); Assert.Throws(() => Container.Resolve()); } public class Foo1 { public Foo1(Bar1 bar) { } } public class Bar1 { public Bar1(Foo1 foo) { } } [Test] public void TestPostInject() { Container.Bind().AsSingle(); Container.Bind().AsSingle(); Assert.IsNotNull(Container.Resolve()); Assert.IsNotNull(Container.Resolve()); } public class Foo2 { [Inject] public void Init(Bar2 bar) { } } public class Bar2 { [Inject] public void Init(Foo2 foo) { } } [Test] public void TestField() { Container.Bind().AsSingle(); Container.Bind().AsSingle(); Assert.IsNotNull(Container.Resolve().Bar); Assert.IsNotNull(Container.Resolve().Foo); } public class Foo3 { [Inject] public Bar3 Bar; } public class Bar3 { [Inject] public Foo3 Foo; } } }