public void Catch_VBNet_rule_compile_error() { var good_script = new ScriptSourceElement() { Name = "good", Type = ScriptSourceElementType.Rule, SourceCode = @" logger.Log(""Test""); " }; var bad_script = new ScriptSourceElement() { Name = "bad", Type = ScriptSourceElementType.Rule, SourceCode = @" loger.Log(""Test""); " }; var logger = Substitute.For <ILogEvents>(); var library = Substitute.For <IScriptLibrary>(); var engine = new VBNetScriptEngine(logger, Debugger.IsAttached, library); engine.Load(new ScriptSourceElement[] { good_script, bad_script }); logger.Received().ScriptHasError("bad", 2, 0, "BC30451", "'loger' is not declared. It may be inaccessible due to its protection level."); }
public void Can_run_a_VBNet_script_interacting_with_an_object_model() { string script = @" self(""x"") = 33 return self(""z"") "; var repository = Substitute.For <IWorkItemRepository>(); var workItem = Substitute.For <IWorkItem>(); workItem.Id.Returns(1); workItem["x"] = 11; workItem["z"].Returns(42); repository.GetWorkItem(1).Returns(workItem); var logger = Substitute.For <ILogEvents>(); logger.WhenForAnyArgs(c => Debug.WriteLine(c)); var engine = new VBNetScriptEngine(repository, logger, Debugger.IsAttached); engine.LoadAndRun("test", script, workItem); Assert.AreEqual(33, workItem["x"]); object expected = 42; logger.Received().ResultsFromScriptRun("test", expected); }
public void Can_run_a_VBNet_script_with_logging() { string script = @" logger.Log(""Test"") "; var repository = Substitute.For <IWorkItemRepository>(); var workItem = Substitute.For <IWorkItem>(); var logger = Substitute.For <ILogEvents>(); logger.ScriptLogger = Substitute.For <IRuleLogger>(); var engine = new VBNetScriptEngine(repository, logger, Debugger.IsAttached); engine.LoadAndRun("test", script, workItem); logger.ScriptLogger.Received().Log("Test"); }
public void Catch_VBNet_rule_compile_error() { string good_script = @" logger.Log(""Test"") "; string bad_script = @" loger.Log(""Test"") "; var logger = Substitute.For <ILogEvents>(); var engine = new VBNetScriptEngine(logger, Debugger.IsAttached); engine.Load("good", good_script); engine.Load("bad", bad_script); engine.LoadCompleted(); logger.Received().ScriptHasError("bad", 2, 0, "BC30451", "'loger' is not declared. It may be inaccessible due to its protection level."); }
public void Can_VBNet_use_Linq() { string script = @" Dim array As Integer() = {1, 3, 5, 7} Return Cint(array.Average()) "; var repository = Substitute.For <IWorkItemRepository>(); var workItem = Substitute.For <IWorkItem>(); repository.GetWorkItem(1).Returns(workItem); var logger = Substitute.For <ILogEvents>(); var engine = new VBNetScriptEngine(repository, logger, Debugger.IsAttached); engine.LoadAndRun("test", script, workItem); object expected = 4; logger.Received().ResultsFromScriptRun("test", expected); }
public void Can_run_a_VBNet_script_interacting_with_an_object_model() { string script = @" self(""x"") = 33 return self(""z"") "; var repository = Substitute.For<IWorkItemRepository>(); var workItem = Substitute.For<IWorkItem>(); workItem.Id.Returns(1); workItem["x"] = 11; workItem["z"].Returns(42); repository.GetWorkItem(1).Returns(workItem); var logger = Substitute.For<ILogEvents>(); logger.WhenForAnyArgs(c => Debug.WriteLine(c)); var engine = new VBNetScriptEngine(logger, Debugger.IsAttached); engine.LoadAndRun("test", script, workItem, repository); Assert.AreEqual(33, workItem["x"]); object expected = 42; logger.Received().ResultsFromScriptRun("test", expected); }
public void Catch_VBNet_rule_compile_error() { string good_script = @" logger.Log(""Test"") "; string bad_script = @" loger.Log(""Test"") "; var logger = Substitute.For<ILogEvents>(); var engine = new VBNetScriptEngine(logger, Debugger.IsAttached); engine.Load("good", good_script); engine.Load("bad", bad_script); engine.LoadCompleted(); logger.Received().ScriptHasError("bad", 2, 0, "BC30451", "'loger' is not declared. It may be inaccessible due to its protection level."); }
public void Can_VBNet_use_Linq() { string script = @" Dim array As Integer() = {1, 3, 5, 7} Return CInt(array.Average()) "; var repository = Substitute.For<IWorkItemRepository>(); var workItem = Substitute.For<IWorkItem>(); repository.GetWorkItem(1).Returns(workItem); var logger = Substitute.For<ILogEvents>(); var engine = new VBNetScriptEngine(logger, Debugger.IsAttached); engine.LoadAndRun("test", script, workItem, repository); object expected = 4; logger.Received().ResultsFromScriptRun("test", expected); }
public void Can_run_a_VBNet_script_with_logging() { string script = @" logger.Log(""Test"") "; var repository = Substitute.For<IWorkItemRepository>(); var workItem = Substitute.For<IWorkItem>(); var logger = Substitute.For<ILogEvents>(); logger.ScriptLogger = Substitute.For<IRuleLogger>(); var engine = new VBNetScriptEngine(logger, Debugger.IsAttached); engine.LoadAndRun("test", script, workItem, repository); logger.ScriptLogger.Received().Log("Test"); }