public void ResetCoroutineContext()
        {
            var coroutineContext = new CoroutineContext(InfiniteCoroutine);

            bool isResetEventTriggered = false;
            coroutineContext.Reseted += () => isResetEventTriggered = true;

            var resetCoroutineContextThread = new Thread(() =>
                {
                    Thread.Sleep(10);
                    coroutineContext.Reset(); 
                });

            resetCoroutineContextThread.Start();
            coroutineContext.Start();

            Assert.IsTrue(isResetEventTriggered);
            Assert.IsFalse(coroutineContext.IsStarted);
            Assert.IsFalse(coroutineContext.IsPaused);
            Assert.IsFalse(coroutineContext.IsFinished);
        }