Files

90 lines
1.9 KiB
C#

using NUnit.Framework;
using Assert = ModestTree.Assert;
namespace Zenject.Tests.Injection
{
[TestFixture]
public class TestStructInjection : ZenjectUnitTestFixture
{
struct Test1
{
}
class Test2
{
public Test2(Test1 t1)
{
}
}
[Test]
public void TestInjectStructIntoClass()
{
Container.Bind<Test1>().FromInstance(new Test1()).NonLazy();
Container.Bind<Test2>().AsSingle().NonLazy();
Container.ResolveRoots();
var t2 = Container.Resolve<Test2>();
Assert.That(t2 != null);
}
struct Test3
{
[Inject]
#pragma warning disable 649
public int ValueField;
#pragma warning restore 649
[Inject]
public string ValueProperty
{
get; private set;
}
public float ValueConstructor
{
get; private set;
}
}
[Test]
public void TestInjectFieldsOfStruct()
{
Container.BindInstance("asdf");
Container.BindInstance(5);
Container.Bind<Test3>().AsSingle();
var test3 = Container.Instantiate<Test3>();
Assert.IsEqual(test3.ValueProperty, "asdf");
Assert.IsEqual(test3.ValueField, 5);
}
struct Test4
{
public Test4(string value)
{
Value = value;
}
public string Value
{
get; private set;
}
}
[Test]
public void TestInjectConstructorOfStruct()
{
Container.BindInstance("asdf");
Container.Bind<Test4>().AsSingle();
var test4 = Container.Instantiate<Test4>();
Assert.IsEqual(test4.Value, "asdf");
}
}
}