public void NestedEnumerableWithCoroutinesShoulBeConsideredWithException()
        {
            var ex           = new Exception();
            var subCoroutine = new CoroutineStackTestCoroutine(ex);
            var steps        = new List <Step>
            {
                Step.DataStep(new EnumeratorWrapper {
                    IsCoroutine  = true,
                    SubCoroutine = subCoroutine
                })
            };

            try
            {
                subCoroutine.Run().ToList();
            }
            catch (Exception exx)
            {
                subCoroutine.OnError(exx);
            }
            var root = new CoroutineStackTestCoroutine();
            var cst  = new CoroutineStack(steps.GetEnumerator(), root);

            Assert.IsTrue(cst.MoveNext());
            var current = cst.Current as Step;

            Assert.IsTrue(current.HasData);
            Assert.IsInstanceOfType(current.Data, typeof(EnumeratorWrapper));
            var enumData = current.Data as EnumeratorWrapper;

            Assert.AreEqual(subCoroutine, enumData.SubCoroutine);
            Assert.IsTrue(cst.MoveNext());
            Assert.IsFalse(cst.MoveNext());
        }