From 1c97d17ef70c8f2a0539f51c4f3822a253b0d5ed Mon Sep 17 00:00:00 2001 From: Zaafar Date: Thu, 18 Mar 2021 09:37:15 -0400 Subject: [PATCH] Added event based test. --- CoroutineTests/EventBasedCoroutineTests.cs | 34 ++++++++++++++++++++++ CoroutineTests/TimeBasedCoroutineTests.cs | 8 ++--- 2 files changed, 38 insertions(+), 4 deletions(-) create mode 100644 CoroutineTests/EventBasedCoroutineTests.cs diff --git a/CoroutineTests/EventBasedCoroutineTests.cs b/CoroutineTests/EventBasedCoroutineTests.cs new file mode 100644 index 0000000..853b5f8 --- /dev/null +++ b/CoroutineTests/EventBasedCoroutineTests.cs @@ -0,0 +1,34 @@ +using Coroutine; +using Microsoft.VisualStudio.TestTools.UnitTesting; +using System.Collections.Generic; + +namespace CoroutineTests +{ + [TestClass] + public class EventBasedCoroutineTests + { + [TestMethod] + public void TestEventBasedCoroutine() + { + int counter = 0; + var myEvent = new Event(); + IEnumerator OnEventTriggered() + { + counter++; + yield return new Wait(myEvent); + counter++; + } + + var cr = CoroutineHandler.Start(OnEventTriggered()); + Assert.AreEqual(1, counter, "instruction before yield is not executed."); + CoroutineHandler.RaiseEvent(myEvent); + Assert.AreEqual(2, counter, "instruction after yield is not executed."); + CoroutineHandler.RaiseEvent(myEvent); + Assert.AreEqual(2, counter, "instruction after yield is not executed."); + + Assert.AreEqual(true, cr.IsFinished, "Incorrect IsFinished value."); + Assert.AreEqual(false, cr.WasCanceled, "Incorrect IsCanceled value."); + Assert.AreEqual(cr.MoveNextCount, 2, "Incorrect MoveNextCount value."); + } + } +} diff --git a/CoroutineTests/TimeBasedCoroutineTests.cs b/CoroutineTests/TimeBasedCoroutineTests.cs index 7390e0e..615c322 100644 --- a/CoroutineTests/TimeBasedCoroutineTests.cs +++ b/CoroutineTests/TimeBasedCoroutineTests.cs @@ -1,11 +1,11 @@ +using System.Collections.Generic; +using System.Threading; using Microsoft.VisualStudio.TestTools.UnitTesting; +using Coroutine; + namespace CoroutineTests { - using Coroutine; - using System.Collections.Generic; - using System.Threading; - [TestClass] public class TimeBasedCoroutineTests {