Update Project

This commit is contained in:
2026-03-20 13:04:43 +02:00
parent 9b587e6cba
commit beae2dea89
2295 changed files with 251259 additions and 33 deletions
@@ -0,0 +1,149 @@
using NUnit.Framework;
using Assert = ModestTree.Assert;
namespace Zenject.Tests.Injection
{
[TestFixture]
public class TestInjectSources
{
class Test0
{
}
class Test1
{
public Test0 val;
public Test1(
[InjectLocal]
Test0 val)
{
this.val = val;
}
}
class Test2
{
public Test0 val;
public Test2(
[Inject(Source = InjectSources.Parent)]
Test0 val)
{
this.val = val;
}
}
class Test3
{
public Test0 val;
public Test3(
[Inject(Source = InjectSources.AnyParent)]
Test0 val)
{
this.val = val;
}
}
class Test4
{
public Test0 val;
public Test4(
[Inject(Source = InjectSources.Any)]
Test0 val)
{
this.val = val;
}
}
[Test]
public void TestAny()
{
var rootContainer = new DiContainer();
var sub1 = rootContainer.CreateSubContainer();
rootContainer.Bind<Test0>().AsSingle();
sub1.Bind<Test4>().AsSingle();
Assert.IsNotNull(sub1.Resolve<Test4>());
}
[Test]
public void TestLocal1()
{
var rootContainer = new DiContainer();
var sub1 = rootContainer.CreateSubContainer();
rootContainer.Bind<Test0>().AsSingle();
sub1.Bind<Test1>().AsSingle();
Assert.Throws(() => sub1.Resolve<Test1>());
}
[Test]
public void TestLocal2()
{
var rootContainer = new DiContainer();
var sub1 = rootContainer.CreateSubContainer();
sub1.Bind<Test0>().AsSingle();
sub1.Bind<Test1>().AsSingle();
Assert.IsNotNull(sub1.Resolve<Test1>());
}
[Test]
public void TestParent1()
{
var rootContainer = new DiContainer();
var sub1 = rootContainer.CreateSubContainer();
rootContainer.Bind<Test0>().AsSingle();
sub1.Bind<Test2>().AsSingle();
Assert.IsNotNull(sub1.Resolve<Test2>());
}
[Test]
public void TestParent2()
{
var rootContainer = new DiContainer();
var sub1 = rootContainer.CreateSubContainer();
var sub2 = sub1.CreateSubContainer();
rootContainer.Bind<Test0>().AsSingle();
sub2.Bind<Test2>().AsSingle();
Assert.Throws(() => sub2.Resolve<Test2>());
}
[Test]
public void TestParent3()
{
var rootContainer = new DiContainer();
rootContainer.Bind<Test0>().AsSingle();
rootContainer.Bind<Test2>().AsSingle();
Assert.Throws(() => rootContainer.Resolve<Test2>());
}
[Test]
public void TestParentAny1()
{
var rootContainer = new DiContainer();
var sub1 = rootContainer.CreateSubContainer();
var sub2 = sub1.CreateSubContainer();
rootContainer.Bind<Test0>().AsSingle();
sub2.Bind<Test3>().AsSingle();
Assert.IsNotNull(sub2.Resolve<Test3>());
}
}
}