107 lines
2.9 KiB
C#
107 lines
2.9 KiB
C#
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using ModestTree;
|
|
using UnityEngine;
|
|
using UnityEngine.TestTools;
|
|
|
|
namespace Zenject.Tests.Bindings
|
|
{
|
|
public class TestFromResource : ZenjectIntegrationTestFixture
|
|
{
|
|
const string ResourcePath = "TestFromResource/TestTexture";
|
|
const string ResourcePath2 = "TestFromResource/TestTexture2";
|
|
|
|
[UnityTest]
|
|
public IEnumerator TestBasic()
|
|
{
|
|
PreInstall();
|
|
Container.Bind<Texture>().FromResource(ResourcePath);
|
|
|
|
Container.Bind<Runner>().FromNewComponentOnNewGameObject().AsSingle().WithArguments(1).NonLazy();
|
|
|
|
PostInstall();
|
|
yield break;
|
|
}
|
|
|
|
[UnityTest]
|
|
public IEnumerator TestTransient()
|
|
{
|
|
PreInstall();
|
|
Container.Bind<Texture>().FromResource(ResourcePath).AsTransient();
|
|
Container.Bind<Texture>().FromResource(ResourcePath);
|
|
Container.Bind<Texture>().To<Texture>().FromResource(ResourcePath);
|
|
|
|
Container.Bind<Runner>().FromNewComponentOnNewGameObject().AsSingle().WithArguments(3).NonLazy();
|
|
|
|
PostInstall();
|
|
yield break;
|
|
}
|
|
|
|
[UnityTest]
|
|
public IEnumerator TestCached()
|
|
{
|
|
PreInstall();
|
|
Container.Bind<Texture>().FromResource(ResourcePath).AsSingle();
|
|
|
|
Container.Bind<Runner>().FromNewComponentOnNewGameObject().AsSingle().WithArguments(1).NonLazy();
|
|
|
|
PostInstall();
|
|
yield break;
|
|
}
|
|
|
|
[UnityTest]
|
|
public IEnumerator TestSingle()
|
|
{
|
|
PreInstall();
|
|
Container.Bind(typeof(Texture), typeof(Texture)).To<Texture>().FromResource(ResourcePath).AsSingle();
|
|
|
|
Container.Bind<Runner>().FromNewComponentOnNewGameObject().AsSingle().WithArguments(2).NonLazy();
|
|
|
|
PostInstall();
|
|
yield break;
|
|
}
|
|
|
|
[UnityTest]
|
|
public IEnumerator TestSingleWithError()
|
|
{
|
|
PreInstall();
|
|
Container.Bind<Texture>().FromResource(ResourcePath).AsSingle();
|
|
Container.Bind<Texture>().FromResource(ResourcePath2).AsSingle();
|
|
|
|
Assert.Throws(() => Container.FlushBindings());
|
|
|
|
PostInstall();
|
|
yield break;
|
|
}
|
|
|
|
public class Runner : MonoBehaviour
|
|
{
|
|
List<Texture> _textures;
|
|
|
|
[Inject]
|
|
public void Construct(List<Texture> textures, int expectedAmount)
|
|
{
|
|
_textures = textures;
|
|
|
|
Assert.IsEqual(textures.Count, expectedAmount);
|
|
}
|
|
|
|
void OnGUI()
|
|
{
|
|
int top = 0;
|
|
|
|
foreach (var tex in _textures)
|
|
{
|
|
var rect = new Rect(0, top, Screen.width * 0.5f, Screen.height * 0.5f);
|
|
|
|
GUI.DrawTexture(rect, tex);
|
|
|
|
top += 200;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|