Exemple #1
0
        public async Task ReturnInNestedScopeWithTrailingVoidExpressionAsInt()
        {
            var script = CSharpScript.Create <int>(@"
bool condition = false;
if (condition)
{
    return 1;
}
System.Console.WriteLine();");
            var result = await script.EvaluateAsync();

            Assert.Equal(0, result);

            script = CSharpScript.Create <int>(@"
bool condition = false;
if (condition)
{
    return 1;
}
System.Console.WriteLine()");

            using (var redirect = new OutputRedirect(CultureInfo.InvariantCulture))
            {
                result = await script.EvaluateAsync();

                Assert.Equal(0, result);
            }
        }
Exemple #2
0
        public async Task ReturnInLoadedFileTrailingVoidExpression()
        {
            using (var redirect = new OutputRedirect(CultureInfo.InvariantCulture))
            {
                var resolver = TestSourceReferenceResolver.Create(
                    KeyValuePair.Create("a.csx", @"
if (false)
{
    return 1;
}
System.Console.WriteLine(42)"));
                var options = ScriptOptions.Default.WithSourceResolver(resolver);

                var script = CSharpScript.Create("#load \"a.csx\"", options);
                var result = await script.EvaluateAsync();

                Assert.Null(result);

                script = CSharpScript.Create(@"
#load ""a.csx""
2", options);
                result = await script.EvaluateAsync();

                Assert.Equal(2, result);
            }
        }
Exemple #3
0
        public async Task TestRunVoidScript()
        {
            using (var redirect = new OutputRedirect(CultureInfo.InvariantCulture))
            {
                var state = await CSharpScript.RunAsync("System.Console.WriteLine(0);");

                Assert.Null(state.ReturnValue);
            }
        }
Exemple #4
0
        public async Task NoReturn()
        {
            using (var redirect = new OutputRedirect(CultureInfo.InvariantCulture))
            {
                var script = CSharpScript.Create <object>("System.Console.WriteLine();");
                var result = await script.EvaluateAsync();

                Assert.Null(result);
            }
        }
Exemple #5
0
        public async Task StreamWithOffset()
        {
            var resolver = new StreamOffsetResolver();
            var options  = ScriptOptions.Default.WithSourceResolver(resolver);
            var script   = CSharpScript.Create(@"#load ""a.csx""", options);

            using (var redirect = new OutputRedirect(CultureInfo.InvariantCulture))
            {
                await script.EvaluateAsync();
            }
        }
Exemple #6
0
        public void CompilationChain_SubmissionSlotResize()
        {
            var state = CSharpScript.RunAsync("");

            for (int i = 0; i < 17; i++)
            {
                state = state.ContinueWith(@"public int i =  1;");
            }

            using (var redirect = new OutputRedirect(CultureInfo.InvariantCulture))
            {
                state.ContinueWith(@"System.Console.WriteLine(i);").Wait();
                Assert.Equal(1, int.Parse(redirect.Output));
            }
        }
Exemple #7
0
        public void TopLevelLambda()
        {
            var s = CSharpScript.RunAsync(@"
using System;
delegate void TestDelegate(string s);
");

            s = s.ContinueWith(@"
TestDelegate testDelB = delegate (string s) { Console.WriteLine(s); };
");

            using (var redirect = new OutputRedirect(CultureInfo.InvariantCulture))
            {
                s.ContinueWith(@"testDelB(""hello"");").Wait();
                Assert.Equal("hello", redirect.Output.Trim());
            }
        }
Exemple #8
0
        public void CompilationChain_NestedTypesStruct()
        {
            var script = CSharpScript.Create(@"
static string outerStr = null;
public static void Foo(string str) { outerStr = str; }
struct InnerStruct
{
   public string innerStr;
   public void Goo() { Foo(""test""); innerStr = outerStr; }            
}
").ContinueWith(@"
InnerStruct iS = new InnerStruct();     
iS.Goo();
").ContinueWith(@"
System.Console.WriteLine(iS.innerStr);
");

            using (var redirect = new OutputRedirect(CultureInfo.InvariantCulture))
            {
                script.RunAsync().Wait();
                Assert.Equal("test", redirect.Output.Trim());
            }
        }