2026-06-02 18:57:47 -04:00
|
|
|
using System.Collections;
|
2026-06-05 22:28:13 -04:00
|
|
|
using BracerLib.Utility.Testing;
|
2026-06-02 18:57:47 -04:00
|
|
|
using Moq;
|
|
|
|
|
using NUnit.Framework;
|
|
|
|
|
using UnityEngine;
|
|
|
|
|
|
|
|
|
|
namespace BracerLib.Tests.Objects
|
|
|
|
|
{
|
|
|
|
|
public interface ITester
|
|
|
|
|
{
|
|
|
|
|
void Test();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public class Tester : ITester
|
|
|
|
|
{
|
|
|
|
|
public void Test() {}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public class MockComponent : MonoBehaviour
|
|
|
|
|
{
|
|
|
|
|
private ITester tester;
|
|
|
|
|
|
|
|
|
|
public void DoTest()
|
|
|
|
|
{
|
|
|
|
|
tester.Test();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public class ObjectMockTests : TestBase
|
|
|
|
|
{
|
|
|
|
|
private MockComponent mockComponent;
|
|
|
|
|
private Mock<ITester> testerMock;
|
|
|
|
|
|
|
|
|
|
protected override IEnumerator UnityOneTimeSetUp()
|
|
|
|
|
{
|
|
|
|
|
testerMock = new Mock<ITester>();
|
|
|
|
|
|
|
|
|
|
var go = new GameObject("mock test obj");
|
|
|
|
|
mockComponent = go.AddComponent<MockComponent>();
|
|
|
|
|
RegisterOneTimeTestObject(go);
|
|
|
|
|
SetReflectedValue(mockComponent, "tester", testerMock.Object);
|
|
|
|
|
|
|
|
|
|
yield return null;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Test]
|
|
|
|
|
public void TestMock()
|
|
|
|
|
{
|
|
|
|
|
testerMock.Setup(x => x.Test());
|
|
|
|
|
|
|
|
|
|
mockComponent.DoTest();
|
|
|
|
|
|
|
|
|
|
testerMock.Verify(x => x.Test(), Times.Once);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|