public void MatcherModelMapper_Map_CSharpCodeMatcher() { // Assign var model = new MatcherModel { Name = "CSharpCodeMatcher", Patterns = new[] { "return it == \"x\";" } }; var sut = new MatcherMapper(new WireMockServerSettings { AllowCSharpCodeMatcher = true }); // Act 1 var matcher1 = (ICSharpCodeMatcher)sut.Map(model); // Assert 1 matcher1.Should().NotBeNull(); matcher1.IsMatch("x").Should().Be(1.0d); // Act 2 var matcher2 = (ICSharpCodeMatcher)sut.Map(model); // Assert 2 matcher2.Should().NotBeNull(); matcher2.IsMatch("x").Should().Be(1.0d); }
public void MatcherModelMapper_Map_Null() { // Act IMatcher matcher = _sut.Map((MatcherModel)null); // Assert Check.That(matcher).IsNull(); }
public void MatcherMapper_Map_IMatcher_Null() { // Act var model = _sut.Map((IMatcher)null); // Assert Check.That(model).IsNull(); }
public void MatcherModelMapper_Map_WildcardMatcher_With_PatternAsFile() { // Arrange var file = "c:\\test.txt"; var fileContent = "c"; var stringPattern = new StringPattern { Pattern = fileContent, PatternAsFile = file }; var fileSystemHandleMock = new Mock <IFileSystemHandler>(); fileSystemHandleMock.Setup(f => f.ReadFileAsString(file)).Returns(fileContent); var model = new MatcherModel { Name = "WildcardMatcher", PatternAsFile = file }; var settings = new WireMockServerSettings { FileSystemHandler = fileSystemHandleMock.Object }; var sut = new MatcherMapper(settings); // Act var matcher = (WildcardMatcher)sut.Map(model); // Assert matcher.GetPatterns().Should().HaveCount(1).And.Contain(new AnyOf <string, StringPattern>(stringPattern)); matcher.IsMatch("c").Should().Be(1.0d); }
public void MatcherMapper_Map_MatcherModel_Null() { // Act var result = MatcherMapper.Map((MatcherModel)null); // Assert Check.That(result).IsNull(); }
public void MatcherMapper_Map_MatcherModel_Exception() { // Assign var model = new MatcherModel { Name = "test" }; // Act and Assert Check.ThatCode(() => MatcherMapper.Map(model)).Throws <NotSupportedException>(); }
public void MatcherModelMapper_Map_SimMetricsMatcher_Throws2() { // Assign var model = new MatcherModel { Name = "SimMetricsMatcher.error", Pattern = "x" }; // Act Check.ThatCode(() => MatcherMapper.Map(model)).Throws <NotSupportedException>(); }
public void MatcherMapper_Map_IMatchers() { // Assign var matcherMock1 = new Mock <IStringMatcher>(); var matcherMock2 = new Mock <IStringMatcher>(); // Act var models = MatcherMapper.Map(new[] { matcherMock1.Object, matcherMock2.Object }); // Assert Check.That(models).HasSize(2); }
public void MatcherMapper_Map_IIgnoreCaseMatcher() { // Assign var matcherMock = new Mock <IIgnoreCaseMatcher>(); matcherMock.Setup(m => m.IgnoreCase).Returns(true); // Act var model = MatcherMapper.Map(matcherMock.Object); // Assert Check.That(model.IgnoreCase).Equals(true); }
public void MatcherMapper_Map_IMatcher_LinqMatcher_Pattern() { // Assign var matcher = new LinqMatcher(MatchBehaviour.AcceptOnMatch, "p"); // Act var result = MatcherMapper.Map(matcher); // Assert Check.That(result).IsNotNull(); Check.That(result.Name).IsEqualTo("LinqMatcher"); Check.That(result.IgnoreCase).IsNull(); Check.That(result.Pattern).IsEqualTo("p"); Check.That(result.Patterns).IsNull(); }
public void MatcherModelMapper_Map_SimMetricsMatcher_BlockDistance() { // Assign var model = new MatcherModel { Name = "SimMetricsMatcher.BlockDistance", Pattern = "x" }; // Act var matcher = (SimMetricsMatcher)MatcherMapper.Map(model); // Assert Check.That(matcher.GetPatterns()).ContainsExactly("x"); }
public void MatcherModelMapper_Map_ExactMatcher_Patterns() { // Assign var model = new MatcherModel { Name = "ExactMatcher", Patterns = new[] { "x", "y" } }; // Act var matcher = (ExactMatcher)MatcherMapper.Map(model); // Assert Check.That(matcher.GetPatterns()).ContainsExactly("x", "y"); }
public void MatcherModelMapper_Map_ExactObjectMatcher_Pattern() { // Assign var model = new MatcherModel { Name = "ExactObjectMatcher", Patterns = new object[] { "c3RlZg==" } }; // Act var matcher = (ExactObjectMatcher)MatcherMapper.Map(model); // Assert Check.That(matcher.ValueAsBytes).ContainsExactly(new byte[] { 115, 116, 101, 102 }); }
public void MatcherMapper_Map_MatcherModel_LinqMatcher_Patterns() { // Assign var model = new MatcherModel { Name = "LinqMatcher", Patterns = new[] { "p1", "p2" } }; // Act var matcher = (LinqMatcher)MatcherMapper.Map(model); // Assert Check.That(matcher.MatchBehaviour).IsEqualTo(MatchBehaviour.AcceptOnMatch); Check.That(matcher.GetPatterns()).ContainsExactly("p1", "p2"); }
public void MatcherMapper_Map_MatcherModel_LinqMatcher_Pattern() { // Assign var model = new MatcherModel { Name = "LinqMatcher", Pattern = "p" }; // Act var matcher = MatcherMapper.Map(model) as LinqMatcher; // Assert Check.That(matcher).IsNotNull(); Check.That(matcher.MatchBehaviour).IsEqualTo(MatchBehaviour.AcceptOnMatch); Check.That(matcher.GetPatterns()).ContainsExactly("p"); }
public void MatcherMapper_Map_IStringMatcher() { // Assign var matcherMock = new Mock <IStringMatcher>(); matcherMock.Setup(m => m.Name).Returns("test"); matcherMock.Setup(m => m.GetPatterns()).Returns(new[] { "p1", "p2" }); // Act var model = MatcherMapper.Map(matcherMock.Object); // Assert Check.That(model.IgnoreCase).IsNull(); Check.That(model.Name).Equals("test"); Check.That(model.Pattern).IsNull(); Check.That(model.Patterns).ContainsExactly("p1", "p2"); }
public void MatcherModelMapper_Map_WildcardMatcher() { // Assign var model = new MatcherModel { Name = "WildcardMatcher", Patterns = new[] { "x", "y" }, IgnoreCase = true }; // Act var matcher = (WildcardMatcher)MatcherMapper.Map(model); // Assert Check.That(matcher.GetPatterns()).ContainsExactly("x", "y"); Check.That(matcher.IsMatch("X")).IsEqualTo(0.5d); }
public void MatcherModelMapper_Map_CSharpCodeMatcher_NotAllowed_ThrowsException() { // Assign var model = new MatcherModel { Name = "CSharpCodeMatcher", Patterns = new[] { "x" } }; var sut = new MatcherMapper(new WireMockServerSettings { AllowCSharpCodeMatcher = false }); // Act Action action = () => sut.Map(model); // Assert action.Should().Throw <NotSupportedException>(); }
public void MatcherModelMapper_Map_ThrowExceptionWhenMatcherFails_True(string name) { // Assign var settings = new WireMockServerSettings { ThrowExceptionWhenMatcherFails = true }; var sut = new MatcherMapper(settings); var model = new MatcherModel { Name = name, Patterns = new[] { "" } }; // Act var matcher = sut.Map(model); // Assert matcher.ThrowException.Should().BeTrue(); }
private IRequestBuilder InitRequestBuilder(RequestModel requestModel) { IRequestBuilder requestBuilder = Request.Create(); if (requestModel.ClientIP != null) { if (requestModel.ClientIP is string clientIP) { requestBuilder = requestBuilder.WithClientIP(clientIP); } else { var clientIPModel = JsonUtils.ParseJTokenToObject <ClientIPModel>(requestModel.ClientIP); if (clientIPModel?.Matchers != null) { requestBuilder = requestBuilder.WithPath(clientIPModel.Matchers.Select(MatcherMapper.Map).Cast <IStringMatcher>().ToArray()); } } } if (requestModel.Path != null) { if (requestModel.Path is string path) { requestBuilder = requestBuilder.WithPath(path); } else { var pathModel = JsonUtils.ParseJTokenToObject <PathModel>(requestModel.Path); if (pathModel?.Matchers != null) { requestBuilder = requestBuilder.WithPath(pathModel.Matchers.Select(MatcherMapper.Map).Cast <IStringMatcher>().ToArray()); } } } if (requestModel.Url != null) { if (requestModel.Url is string url) { requestBuilder = requestBuilder.WithUrl(url); } else { var urlModel = JsonUtils.ParseJTokenToObject <UrlModel>(requestModel.Url); if (urlModel?.Matchers != null) { requestBuilder = requestBuilder.WithUrl(urlModel.Matchers.Select(MatcherMapper.Map).Cast <IStringMatcher>().ToArray()); } } } if (requestModel.Methods != null) { requestBuilder = requestBuilder.UsingMethod(requestModel.Methods); } if (requestModel.Headers != null) { foreach (var headerModel in requestModel.Headers.Where(h => h.Matchers != null)) { requestBuilder = requestBuilder.WithHeader(headerModel.Name, headerModel.Matchers.Select(MatcherMapper.Map).Cast <IStringMatcher>().ToArray()); } } if (requestModel.Cookies != null) { foreach (var cookieModel in requestModel.Cookies.Where(c => c.Matchers != null)) { requestBuilder = requestBuilder.WithCookie(cookieModel.Name, cookieModel.Matchers.Select(MatcherMapper.Map).Cast <IStringMatcher>().ToArray()); } } if (requestModel.Params != null) { foreach (var paramModel in requestModel.Params.Where(c => c.Matchers != null)) { requestBuilder = requestBuilder.WithParam(paramModel.Name, paramModel.Matchers.Select(MatcherMapper.Map).Cast <IStringMatcher>().ToArray()); } } if (requestModel.Body?.Matcher != null) { var bodyMatcher = MatcherMapper.Map(requestModel.Body.Matcher); requestBuilder = requestBuilder.WithBody(bodyMatcher); } return(requestBuilder); }
public void MatcherMapper_Map_IMatcher_Null() { // Act var model = _sut.Map((IMatcher)null); // Assert model.Should().BeNull(); }
private IRequestBuilder InitRequestBuilder(RequestModel requestModel, bool pathOrUrlRequired) { IRequestBuilder requestBuilder = Request.Create(); if (requestModel.ClientIP != null) { if (requestModel.ClientIP is string clientIP) { requestBuilder = requestBuilder.WithClientIP(clientIP); } else { var clientIPModel = JsonUtils.ParseJTokenToObject <ClientIPModel>(requestModel.ClientIP); if (clientIPModel?.Matchers != null) { requestBuilder = requestBuilder.WithPath(clientIPModel.Matchers.Select(MatcherMapper.Map).Cast <IStringMatcher>().ToArray()); } } } bool pathOrUrlmatchersValid = false; if (requestModel.Path != null) { if (requestModel.Path is string path) { requestBuilder = requestBuilder.WithPath(path); pathOrUrlmatchersValid = true; } else { var pathModel = JsonUtils.ParseJTokenToObject <PathModel>(requestModel.Path); if (pathModel?.Matchers != null) { requestBuilder = requestBuilder.WithPath(pathModel.Matchers.Select(MatcherMapper.Map).Cast <IStringMatcher>().ToArray()); pathOrUrlmatchersValid = true; } } } else if (requestModel.Url != null) { if (requestModel.Url is string url) { requestBuilder = requestBuilder.WithUrl(url); pathOrUrlmatchersValid = true; } else { var urlModel = JsonUtils.ParseJTokenToObject <UrlModel>(requestModel.Url); if (urlModel?.Matchers != null) { requestBuilder = requestBuilder.WithUrl(urlModel.Matchers.Select(MatcherMapper.Map).Cast <IStringMatcher>().ToArray()); pathOrUrlmatchersValid = true; } } } if (pathOrUrlRequired && !pathOrUrlmatchersValid) { _logger.Error("Path or Url matcher is missing for this mapping, this mapping will not be added."); return(null); } if (requestModel.Methods != null) { requestBuilder = requestBuilder.UsingMethod(requestModel.Methods); } if (requestModel.Headers != null) { foreach (var headerModel in requestModel.Headers.Where(h => h.Matchers != null)) { requestBuilder = requestBuilder.WithHeader(headerModel.Name, headerModel.Matchers.Select(MatcherMapper.Map).Cast <IStringMatcher>().ToArray()); } } if (requestModel.Cookies != null) { foreach (var cookieModel in requestModel.Cookies.Where(c => c.Matchers != null)) { requestBuilder = requestBuilder.WithCookie(cookieModel.Name, cookieModel.Matchers.Select(MatcherMapper.Map).Cast <IStringMatcher>().ToArray()); } } if (requestModel.Params != null) { foreach (var paramModel in requestModel.Params.Where(c => c.Matchers != null)) { bool ignoreCase = paramModel?.IgnoreCase ?? false; requestBuilder = requestBuilder.WithParam(paramModel.Name, ignoreCase, paramModel.Matchers.Select(MatcherMapper.Map).Cast <IStringMatcher>().ToArray()); } } if (requestModel.Body?.Matcher != null) { var bodyMatcher = MatcherMapper.Map(requestModel.Body.Matcher); requestBuilder = requestBuilder.WithBody(bodyMatcher); } return(requestBuilder); }