public void MultiRawScript_ReturnsHelloWorld()
        {
            var block = ScriptStatementHelper.CreateScriptBlockStatement();

            block.Statements.Add(ScriptStatementHelper.CreateScriptRawStatement("hello"));
            block.Statements.Add(ScriptStatementHelper.CreateScriptRawStatement("world"));

            var lambda = statementGenerator.Generate <string, object>(new ExpressContext(), block);
            var result = ExecuteStatments(lambda, null, null);

            result.ShouldBe("helloworld");
        }
        public void RawScriptStatement()
        {
            var block = ScriptStatementHelper.CreateScriptBlockStatement();

            block.Statements.Add(ScriptStatementHelper.CreateScriptRawStatement("hello"));

            var action = statementGenerator.Generate <string, string>(new ExpressContext(), block);

            var compiled = action.Compile();

            StringBuilder sb = new StringBuilder();

            compiled(sb, "", "");

            sb.ToString().ShouldBe("hello");
        }
        public void InvalidStatement_ReturnsValidStatementsOnly()
        {
            var block = ScriptStatementHelper.CreateScriptBlockStatement();

            block.Statements.Add(ScriptStatementHelper.CreateScriptRawStatement("hello"));

            var invalidStatement = ScriptStatementHelper.CreateScriptExpressionStatement(
                ScriptStatementHelper.CreateScriptVariableGlobal("doesnotexist")
                );

            block.Statements.Add(invalidStatement);

            block.Statements.Add(ScriptStatementHelper.CreateScriptRawStatement("world"));

            var lambda = statementGenerator.Generate <string, object>(new ExpressContext(), block);
            var result = ExecuteStatments(lambda, null, null);

            result.ShouldBe("helloworld");
        }