public void ShouldReturnOnlyLastValueOfVariablesDeclaredManyTimes([NoAutoProperties] CSharpReplEngine engine, ScriptPackSession scriptPackSession)
            {
                var session = new SessionState <ScriptState> {
                    Session = CSharpScript.Run("")
                };

                scriptPackSession.State[CommonScriptEngine.SessionKey] = session;

                engine.Execute("int x = 1;", new string[0], new AssemblyReferences(), Enumerable.Empty <string>(), scriptPackSession);
                engine.Execute("int x = 2;", new string[0], new AssemblyReferences(), Enumerable.Empty <string>(), scriptPackSession);

                engine.GetLocalVariables(scriptPackSession).ShouldEqual(new Collection <string> {
                    "System.Int32 x"
                });
            }
            public void ShouldReturnDeclaredVariables([NoAutoProperties] CSharpReplEngine engine, ScriptPackSession scriptPackSession)
            {
                var session = new SessionState <ScriptState> {
                    Session = CSharpScript.RunAsync("").GetAwaiter().GetResult()
                };

                scriptPackSession.State[CommonScriptEngine.SessionKey] = session;

                engine.Execute("int x = 1;", new string[0], new AssemblyReferences(), Enumerable.Empty <string>(),
                               scriptPackSession);
                engine.Execute(@"var y = ""www"";", new string[0], new AssemblyReferences(), Enumerable.Empty <string>(),
                               scriptPackSession);

                engine.GetLocalVariables(scriptPackSession).ShouldEqual(new Collection <string> {
                    "System.Int32 x", "System.String y"
                });
            }
            public void ShouldReturn0VariablesAfterReset([NoAutoProperties] CSharpReplEngine engine, ScriptPackSession scriptPackSession)
            {
                var session = new SessionState <ScriptState> {
                    Session = CSharpScript.Run("")
                };

                scriptPackSession.State[CommonScriptEngine.SessionKey] = session;

                engine.Execute("int x = 1;", new string[0], new AssemblyReferences(), Enumerable.Empty <string>(),
                               scriptPackSession);
                engine.Execute(@"var y = ""www"";", new string[0], new AssemblyReferences(), Enumerable.Empty <string>(),
                               scriptPackSession);

                scriptPackSession.State[CommonScriptEngine.SessionKey] = new SessionState <ScriptState> {
                    Session = CSharpScript.Run("")
                };

                engine.GetLocalVariables(scriptPackSession).ShouldBeEmpty();
            }