Initial Commit

This commit is contained in:
2026-03-16 14:38:46 +02:00
commit b8f7327a21
2327 changed files with 253610 additions and 0 deletions
@@ -0,0 +1,145 @@
using System.Collections;
using ModestTree;
using UnityEngine.TestTools;
namespace Zenject.Tests.Bindings
{
public class TestLazy : ZenjectIntegrationTestFixture
{
[UnityTest]
public IEnumerator Test1()
{
PreInstall();
Bar.InstanceCount = 0;
Container.Bind<Bar>().AsSingle();
Container.Bind<Foo>().AsSingle();
PostInstall();
var foo = Container.Resolve<Foo>();
Assert.IsEqual(Bar.InstanceCount, 0);
foo.DoIt();
Assert.IsEqual(Bar.InstanceCount, 1);
yield break;
}
[UnityTest]
public IEnumerator Test2()
{
PreInstall();
Container.Bind<Foo>().AsSingle().NonLazy();
PostInstall();
var foo = Container.Resolve<Foo>();
Assert.Throws(() => foo.DoIt());
yield break;
}
[UnityTest]
[ValidateOnly]
public IEnumerator Test3()
{
PreInstall();
Container.Settings = new ZenjectSettings(ValidationErrorResponses.Throw);
Container.Bind<Foo>().AsSingle().NonLazy();
Assert.Throws(() => PostInstall());
yield break;
}
[UnityTest]
[ValidateOnly]
public IEnumerator Test4()
{
PreInstall();
Container.Bind<Foo>().AsSingle().NonLazy();
Container.Bind<Bar>().AsSingle();
PostInstall();
yield break;
}
[UnityTest]
public IEnumerator TestOptional1()
{
PreInstall();
Container.Bind<Bar>().AsSingle();
Container.Bind<Qux>().AsSingle();
PostInstall();
Assert.IsNotNull(Container.Resolve<Qux>().Bar.Value);
yield break;
}
[UnityTest]
public IEnumerator TestOptional2()
{
PreInstall();
Container.Bind<Qux>().AsSingle();
PostInstall();
Assert.IsNull(Container.Resolve<Qux>().Bar.Value);
yield break;
}
[UnityTest]
public IEnumerator TestOptional3()
{
PreInstall();
Container.Bind<Gorp>().AsSingle();
PostInstall();
var gorp = Container.Resolve<Gorp>();
object temp;
Assert.Throws(() => temp = gorp.Bar.Value);
yield break;
}
public class Bar
{
public static int InstanceCount;
public Bar()
{
InstanceCount++;
}
public void DoIt()
{
}
}
public class Foo
{
readonly LazyInject<Bar> _bar;
public Foo(LazyInject<Bar> bar)
{
_bar = bar;
}
public void DoIt()
{
_bar.Value.DoIt();
}
}
public class Qux
{
[Inject(Optional = true)]
public LazyInject<Bar> Bar;
}
public class Gorp
{
public LazyInject<Bar> Bar;
}
}
}
@@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 1ce0b6eda7a924b40a99633734931bb9
timeCreated: 1485556448
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: