1
0
mirror of https://github.com/oliverbooth/X10D synced 2024-10-18 22:06:10 +00:00
X10D/X10D.Unity.Tests/Assets/Tests/SingletonTests.cs
Oliver Booth 5d2313fa20
test: replace playmode tests with NUnit tests (#76)
Using yield break; in a coroutine which does not need to be one, that's a paddlin'.
2023-04-05 22:51:59 +01:00

44 lines
1.3 KiB
C#

using System.Collections;
using NUnit.Framework;
using UnityEngine;
using UnityEngine.TestTools;
namespace X10D.Unity.Tests
{
public class SingletonTests
{
[Test]
public void Singleton_ShouldReturnNewInstance_WhenNoInstanceExists()
{
TestBehaviour instance = Singleton<TestBehaviour>.Instance;
Assert.IsNotNull(instance);
Assert.IsTrue(instance.Flag);
}
[Test]
public void Singleton_ShouldReturnSameInstance_WhenAccessedTwice()
{
TestBehaviour instance = Singleton<TestBehaviour>.Instance;
Assert.IsNotNull(instance);
Assert.AreEqual(instance, Singleton<TestBehaviour>.Instance);
}
[UnityTest]
public IEnumerator Singleton_ShouldReturnNewInstance_WhenDestroyed()
{
TestBehaviour instance = Singleton<TestBehaviour>.Instance;
Assert.IsNotNull(instance);
Object.Destroy(instance);
yield return null;
Assert.IsFalse(instance);
// ReSharper disable once HeuristicUnreachableCode
instance = Singleton<TestBehaviour>.Instance;
Assert.IsNotNull(instance);
Assert.IsTrue(instance.Flag);
}
}
}