예제 #1
0
        public void ExecuteImmediately()
        {
            var TestScriptEngine = new Scripts();
            var Enumerable       = new EnumerableClass();

            TestScriptEngine.Start(Enumerable.YieldOnce(), "");
            Assert.IsTrue(Enumerable.Yielded);
            TestScriptEngine.Update();
            Assert.AreEqual(0, TestScriptEngine.ScriptCollection.Count);
        }
예제 #2
0
        public void RemoveSetsScriptDone()
        {
            var TestScriptEngine = new Scripts();
            var Enumerable       = new EnumerableClass();
            var Script           = TestScriptEngine.Start(Enumerable.Foo(), "ScriptName");

            Assert.IsFalse(Script.Done);
            TestScriptEngine.Update();
            Assert.IsFalse(Script.Done);
            TestScriptEngine.Remove("ScriptName");
            Assert.IsTrue(Script.Done);
        }
예제 #3
0
        public void ExecuteDeferred()
        {
            var TestScriptEngine = new Scripts();
            var Enumerable       = new EnumerableClass();

            TestScriptEngine.Enqueue(Enumerable.YieldOnce(), "");
            Assert.IsFalse(Enumerable.Yielded);
            TestScriptEngine.Update();
            Assert.IsTrue(Enumerable.Yielded);
            TestScriptEngine.Update();
            Assert.AreEqual(0, TestScriptEngine.ScriptCollection.Count);
        }
예제 #4
0
        public void NestedIEnumerator()
        {
            var Script      = new Scripts();
            var ScriptClass = new EnumerableClass();

            Script.Start(ScriptClass.NestedIEnumerator());
            while (Script.ScriptCollection.Count > 0)
            {
                Script.Update();
            }
            Assert.AreEqual(7, ScriptClass.TestInt);
        }
예제 #5
0
        public void SaveScript()
        {
            var TestClass  = new EnumerableClass();
            var TestScript = new Script(TestClass.Foo());

            TestScript.MoveNext();
            TestScript.MoveNext();
            Assert.AreEqual(false, TestScript.Done);
            var Check = STACK.State.Serialization.SaveState <Script>(TestScript);

            TestScript = STACK.State.Serialization.LoadState <Script>(Check);
            Assert.AreEqual(false, TestScript.Done);
        }
예제 #6
0
        public void ScriptEngineNestedScript()
        {
            Scripts TestScriptEngine = new Scripts();
            var     EnumerableClass  = new EnumerableClass();

            TestScriptEngine.Start(EnumerableClass.NestedScript(TestScriptEngine), "");
            Assert.AreEqual(1, TestScriptEngine.ScriptCollection.Count);
            TestScriptEngine.Update();
            Assert.AreEqual(2, TestScriptEngine.ScriptCollection.Count);
            TestScriptEngine.Update();
            Assert.IsFalse(EnumerableClass.FinishedNestedScript);
            TestScriptEngine.Update();
            Assert.AreEqual(0, TestScriptEngine.ScriptCollection.Count);
            Assert.IsTrue(EnumerableClass.FinishedNestedScript);
        }