public void Should_throw_CodeEvaluationException_with_test_and_compilation_information_in_exception_message() { // given string code = "this won't compile"; var snippetReader = new SnippetFileReaderMock(code); var evaluator = new TestFileScriptEvaluator(new JsonConfiguration(), snippetReader); var test = new Test() { ScriptSnippets = new ScriptSnippets() { BeforeExecuteFilename = "filepath-isnt-used.snippet" }, Description = "My test" }; // when + then try { evaluator.EvaluateBeforeExecute(test, new RestRequest()); Assert.Fail("Expected a CodeEvaluationException"); } catch (CodeEvaluationException ex) { Assert.That(ex.Message, Contains.Substring("An exception occurred evaluating the before script for test 'My test'")); Assert.That(ex.Message, Contains.Substring("error CS1002: ; expected")); Assert.That(ex.InnerException, Is.Not.Null); Assert.That(ex.InnerException, Is.TypeOf <CompilationErrorException>()); } }
public void EvaluateBeforeExecute_should_add_required_references() { // given var snippetReader = new SnippetFileReaderMock("IRestRequest request = new RestRequest();"); var evaluator = new TestFileScriptEvaluator(new JsonConfiguration(), snippetReader); var test = new Test(); test.ScriptSnippets.BeforeExecuteFilename = "path-doesnt-matter.snippet"; // when + then bool result = evaluator.EvaluateBeforeExecute(test, new RestRequest()); Assert.That(result, Is.True); }
public void EvaluateBeforeExecute_should_set_globals() { // given string code = "Test.Description = \"it worked\";" + "Request.Method = Method.PUT;"; var snippetReader = new SnippetFileReaderMock(code); var evaluator = new TestFileScriptEvaluator(new JsonConfiguration(), snippetReader); var test = new Test(); test.ScriptSnippets.BeforeExecuteFilename = "filename-doesnt-matter.snippet"; // when bool result = evaluator.EvaluateBeforeExecute(test, new RestRequest()); // then Assert.That(result, Is.True); Assert.That(evaluator.RequestGlobals.Test.Description, Is.EqualTo("it worked")); Assert.That(evaluator.RequestGlobals.Request.Method, Is.EqualTo(Method.PUT)); }