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 {