public void invalid_regex_should_set_success_to_false() { // Arrange var sessionVariables = new SessionVariables(); var matcher = new VerificationsMatcher(sessionVariables); var verifications = new List<VerificationItem>(); verifications.Add(new VerificationItem("dodgy regex", "((*)", VerifyType.Positive)); string content = "<p>Some content here</p>"; // Act List<VerificationItem> results = matcher.MatchPositive(verifications, content); // Assert Assert.That(results.Count, Is.EqualTo(1)); Assert.That(results[0].Success, Is.False); }
public void MatchPositive_should_match_text_in_content() { // Arrange var sessionVariables = new SessionVariables(); var matcher = new VerificationsMatcher(sessionVariables); var verifications = new List<VerificationItem>(); verifications.Add(new VerificationItem("desc1","content here", VerifyType.Positive)); verifications.Add(new VerificationItem("desc2", "bad regex", VerifyType.Positive)); string content = "<p>Some content here</p>"; // Act List<VerificationItem> results = matcher.MatchPositive(verifications, content); // Assert Assert.That(results.Count, Is.EqualTo(2)); Assert.That(results[0].Success, Is.True); Assert.That(results[0].Description, Is.EqualTo("desc1")); Assert.That(results[0].Regex, Is.EqualTo("content here")); Assert.That(results[1].Success, Is.False); Assert.That(results[1].Description, Is.EqualTo("desc2")); Assert.That(results[1].Regex, Is.EqualTo("bad regex")); }
public void should_replace_variables_in_regex() { // Arrange var sessionVariables = new SessionVariables(); sessionVariables.AddOrUpdateVariable("password", "tedx123"); var matcher = new VerificationsMatcher(sessionVariables); var verifications = new List<VerificationItem>(); verifications.Add(new VerificationItem("desc1", "({password})", VerifyType.Positive)); string content = "<p>The password is tedx123</p>"; // Act List<VerificationItem> results = matcher.MatchPositive(verifications, content); // Assert Assert.That(results.Count, Is.EqualTo(1)); Assert.That(results[0].Success, Is.True); Assert.That(results[0].Description, Is.EqualTo("desc1")); Assert.That(results[0].Regex, Is.EqualTo("({password})")); Assert.That(results[0].TransformedRegex, Is.EqualTo("(tedx123)")); }
internal TestCaseResult RunCase(Case testCase, SessionVariables variables, VerificationsMatcher verificationMatcher) { var testResult = new TestCaseResult(); testResult.TestCase = testCase; try { string resolvedUrl = variables.ReplacePlainTextVariablesIn(testCase.Url); testResult.ActualUrl = resolvedUrl; HttpResponse response = _httpClient.ExecuteRequest(testCase.Method, resolvedUrl, testCase.PostType, testCase.PostBody, testCase.Headers); testResult.ResponseTime = response.ResponseTime; testResult.HttpResponse = response; if (response.StatusCode == testCase.VerifyResponseCode) { testResult.ResponseCodeSuccess = true; string content = response.ToString(); // Put the parseresponse regex values in the current variable set Dictionary<string, string> parsedVariables = ParseResponseMatcher.MatchParseResponses(testCase.ParseResponses, content); variables.AddOrUpdateVariables(parsedVariables); // Verify positives testResult.VerifyPositiveResults = verificationMatcher.MatchPositive(testCase.VerifyPositives, content); // Verify Negatives testResult.VerifyNegativeResults = verificationMatcher.MatchNegative(testCase.VerifyNegatives, content); } else { testResult.ResponseCodeSuccess = false; } if (testResult.Success == false) { testResult.Message = testCase.ErrorMessage; } if (ShouldLogRequest(testResult, testCase)) { _httpClient.LogLastRequest(); } if (ShouldLogResponse(testResult, testCase)) { _httpClient.LogLastResponse(); } _resultWriter.Write(testResult); if (testCase.Sleep > 0) Thread.Sleep(testCase.Sleep * 1000); } catch (Exception ex) { testResult.ResponseCodeSuccess = false; testResult.ExceptionMessage = ex.Message; } return testResult; }