using NUnit.Framework; using Assert = ModestTree.Assert; namespace Zenject.Tests.Other { [TestFixture] public class TestBindCallbacks : ZenjectUnitTestFixture { public class Foo { [Inject] public int Value2 { get; set; } public string Value { get; set; } public class Factory : PlaceholderFactory { } public class Pool : MemoryPool { } } [Test] public void Test1() { Container.BindInstance(5).WhenInjectedInto(); Container.Bind().AsSingle().OnInstantiated((ctx, f) => { Assert.IsEqual(f.Value2, 5); f.Value = "asdf"; }); var foo = Container.Resolve(); Assert.IsEqual(foo.Value, "asdf"); } [Test] public void TestFactory1() { Container.BindInstance(5).WhenInjectedInto(); Container.BindFactory().OnInstantiated((ctx, f) => { Assert.IsEqual(f.Value2, 5); f.Value = "asdf"; }); var foo = Container.Resolve().Create(); Assert.IsEqual(foo.Value, "asdf"); } [Test] public void TestMemoryPool1() { Container.BindInstance(5).WhenInjectedInto(); Container.BindMemoryPool().OnInstantiated((ctx, f) => { Assert.IsEqual(f.Value2, 5); f.Value = "asdf"; }); var foo = Container.Resolve().Spawn(); Assert.IsEqual(foo.Value, "asdf"); } } }