71 lines
2.4 KiB
C#
71 lines
2.4 KiB
C#
#if UNITY_EDITOR
|
|
|
|
using System.Linq;
|
|
using ModestTree;
|
|
using UnityEngine;
|
|
using UnityEngine.SceneManagement;
|
|
|
|
namespace Zenject.Tests
|
|
{
|
|
public static class FixtureUtil
|
|
{
|
|
public static GameObject GetPrefab(string resourcePath)
|
|
{
|
|
var prefab = (GameObject)Resources.Load(resourcePath);
|
|
Assert.IsNotNull(prefab, "Expected to find prefab at '{0}'", resourcePath);
|
|
return prefab;
|
|
}
|
|
|
|
public static void AssertNumGameObjectsWithName(
|
|
string name, int expectedNumGameObjects)
|
|
{
|
|
var numMatches = SceneManager.GetActiveScene()
|
|
.GetRootGameObjects().Where(x => x.name == name).Count();
|
|
|
|
Assert.IsEqual(
|
|
numMatches, expectedNumGameObjects);
|
|
}
|
|
|
|
public static void AssertNumGameObjects(
|
|
int expectedNumGameObjects)
|
|
{
|
|
var totalNumGameObjects =
|
|
SceneManager.GetActiveScene().GetRootGameObjects().Count();
|
|
|
|
// -1 because the scene context
|
|
Assert.IsEqual(totalNumGameObjects - 1, expectedNumGameObjects);
|
|
}
|
|
|
|
public static void AssertComponentCount<TComponent>(
|
|
int expectedNumComponents)
|
|
{
|
|
Assert.That(typeof(TComponent).DerivesFromOrEqual<Component>()
|
|
|| typeof(TComponent).IsAbstract());
|
|
|
|
var actualCount = SceneManager.GetActiveScene().GetRootGameObjects()
|
|
.SelectMany(x => x.GetComponentsInChildren<TComponent>()).Count();
|
|
|
|
Assert.IsEqual(actualCount, expectedNumComponents,
|
|
"Expected to find '{0}' components of type '{1}' but instead found '{2}'"
|
|
.Fmt(expectedNumComponents, typeof(TComponent).PrettyName(), actualCount));
|
|
}
|
|
|
|
public static void AssertResolveCount<TContract>(
|
|
DiContainer container, int expectedNum)
|
|
{
|
|
var actualCount = container.ResolveAll<TContract>().Count;
|
|
Assert.That(actualCount == expectedNum,
|
|
"Expected to find '{0}' instances of type '{1}' but instead found '{2}'",
|
|
expectedNum, typeof(TContract).PrettyName(), actualCount);
|
|
}
|
|
|
|
public static void CallFactoryCreateMethod<TValue, TFactory>(DiContainer container)
|
|
where TFactory : PlaceholderFactory<TValue>
|
|
{
|
|
container.Resolve<TFactory>().Create();
|
|
}
|
|
}
|
|
}
|
|
|
|
#endif
|