Exemple #1
0
        public void Request_WithPaths()
        {
            var requestBuilder = Request.Create().WithPath("/x1", "/x2");

            var request1 = new RequestMessage(new Uri("http://localhost/x1"), "blabla", ClientIp);
            var request2 = new RequestMessage(new Uri("http://localhost/x2"), "blabla", ClientIp);

            var requestMatchResult = new RequestMatchResult();

            Check.That(requestBuilder.GetMatchingScore(request1, requestMatchResult)).IsEqualTo(1.0);
            Check.That(requestBuilder.GetMatchingScore(request2, requestMatchResult)).IsEqualTo(1.0);
        }
Exemple #2
0
        public void Should_specify_requests_matching_given_paths()
        {
            var requestBuilder = Request.Create().WithPath("/x1", "/x2");

            var request1 = new RequestMessage(new Uri("http://localhost/x1"), "blabla");
            var request2 = new RequestMessage(new Uri("http://localhost/x2"), "blabla");

            var requestMatchResult = new RequestMatchResult();

            Check.That(requestBuilder.GetMatchingScore(request1, requestMatchResult)).IsEqualTo(1.0);
            Check.That(requestBuilder.GetMatchingScore(request2, requestMatchResult)).IsEqualTo(1.0);
        }
Exemple #3
0
        public void Should_exclude_requests_not_matching_given_params()
        {
            // given
            var spec = Request.Create().WithParam("bar", "1");

            // when
            var request = new RequestMessage(new UrlDetails("http://localhost/test=7"), "PUT", ClientIp);

            // then
            var requestMatchResult = new RequestMatchResult();

            Check.That(spec.GetMatchingScore(request, requestMatchResult)).IsNotEqualTo(1.0);
        }
Exemple #4
0
        public void Request_WithClientIP_WildcardMatcher()
        {
            // given
            var spec = Request.Create().WithClientIP(new WildcardMatcher("127.0.0.2"));

            // when
            var request = new RequestMessage(new UrlDetails("http://localhost"), "GET", "127.0.0.2");

            // then
            var requestMatchResult = new RequestMatchResult();

            Check.That(spec.GetMatchingScore(request, requestMatchResult)).IsEqualTo(1.0);
        }
Exemple #5
0
        public void Should_specify_requests_matching_given_param_func()
        {
            // given
            var spec = Request.Create().UsingAnyMethod().WithParam(p => p.ContainsKey("bar"));

            // when
            var request = new RequestMessage(new UrlDetails("http://localhost/foo?bar=1&bar=2"), "PUT", ClientIp);

            // then
            var requestMatchResult = new RequestMatchResult();

            Check.That(spec.GetMatchingScore(request, requestMatchResult)).IsEqualTo(1.0);
        }
Exemple #6
0
        public void Should_specify_requests_matching_given_path_prefix()
        {
            // given
            var spec = Request.Create().WithPath(new RegexMatcher("^/foo"));

            // when
            var request = new RequestMessage(new Uri("http://localhost/foo/bar"), "blabla");

            // then
            var requestMatchResult = new RequestMatchResult();

            Check.That(spec.GetMatchingScore(request, requestMatchResult)).IsEqualTo(1.0);
        }
Exemple #7
0
        public void Should_exclude_requests_not_matching_given_path()
        {
            // given
            var spec = Request.Create().WithPath("/foo");

            // when
            var request = new RequestMessage(new Uri("http://localhost/bar"), "blabla");

            // then
            var requestMatchResult = new RequestMatchResult();

            Check.That(spec.GetMatchingScore(request, requestMatchResult)).IsNotEqualTo(1.0);
        }
        public void RequestMessageParamMatcher_GetMatchingScore_KeyWith2ValuesPresentInUrl_And_With1ExactStringWith3Patterns_Returns0_66()
        {
            // Assign
            var requestMessage = new RequestMessage(new UrlDetails("http://localhost?key=test1,test2"), "GET", "127.0.0.1");
            var matcher        = new RequestMessageParamMatcher(MatchBehaviour.AcceptOnMatch, "key", false, new IStringMatcher[] { new ExactMatcher("test1", "test2", "test3") });

            // Act
            var    result = new RequestMatchResult();
            double score  = matcher.GetMatchingScore(requestMessage, result);

            // Assert
            Check.That(score).IsCloseTo(0.66d, 0.1d);
        }
Exemple #9
0
        public void Should_exclude_requests_matching_given_path_but_not_http_method()
        {
            // given
            var spec = Request.Create().WithPath("/foo").UsingPut();

            // when
            var request = new RequestMessage(new Uri("http://localhost/foo"), "HEAD", ClientIp);

            // then
            var requestMatchResult = new RequestMatchResult();

            Check.That(spec.GetMatchingScore(request, requestMatchResult)).IsNotEqualTo(1.0);
        }
Exemple #10
0
        public void RequestMessageParamMatcher_GetMatchingScore_PartialMatch()
        {
            // Assign
            var requestMessage = new RequestMessage(new Uri("http://localhost?key=test0,test2"), "GET", "127.0.0.1");
            var matcher        = new RequestMessageParamMatcher("key", new[] { "test1", "test2" });

            // Act
            var    result = new RequestMatchResult();
            double score  = matcher.GetMatchingScore(requestMessage, result);

            // Assert
            Check.That(score).IsEqualTo(0.5d);
        }
Exemple #11
0
        public void Request_WithPathFunc()
        {
            // given
            var spec = Request.Create().WithPath(url => url.EndsWith("/foo"));

            // when
            var request = new RequestMessage(new UrlDetails("http://localhost/foo"), "blabla", ClientIp);

            // then
            var requestMatchResult = new RequestMatchResult();

            Check.That(spec.GetMatchingScore(request, requestMatchResult)).IsEqualTo(1.0);
        }
        public void Request_WithClientIP_Match_Fail()
        {
            // given
            var spec = Request.Create().WithClientIP("127.0.0.2");

            // when
            var request = new RequestMessage(new Uri("http://localhost"), "GET", "192.1.1.1");

            // then
            var requestMatchResult = new RequestMatchResult();

            Check.That(spec.GetMatchingScore(request, requestMatchResult)).IsEqualTo(0.0);
        }
Exemple #13
0
        public void RequestMessageCompositeMatcher_GetMatchingScore_EmptyArray()
        {
            // Assign
            var requestMessage = new RequestMessage(new UrlDetails("http://localhost"), "GET", "127.0.0.1");
            var matcher        = new Helper(Enumerable.Empty <IRequestMatcher>());

            // Act
            var    result = new RequestMatchResult();
            double score  = matcher.GetMatchingScore(requestMessage, result);

            // Assert
            Check.That(score).IsEqualTo(0.0d);
        }
Exemple #14
0
        public void RequestMessageParamMatcher_GetMatchingScore_OnlyKeyPresent()
        {
            // Assign
            var requestMessage = new RequestMessage(new Uri("http://localhost?key"), "GET", "127.0.0.1");
            var matcher        = new RequestMessageParamMatcher(MatchBehaviour.AcceptOnMatch, "key", new[] { "test1", "test2" });

            // Act
            var    result = new RequestMatchResult();
            double score  = matcher.GetMatchingScore(requestMessage, result);

            // Assert
            Check.That(score).IsEqualTo(0.0d);
        }
        public void Request_WithClientIP_Func()
        {
            // given
            var spec = Request.Create().WithClientIP(c => c.Contains("."));

            // when
            var request = new RequestMessage(new Uri("http://localhost"), "GET", "127.0.0.2");

            // then
            var requestMatchResult = new RequestMatchResult();

            Check.That(spec.GetMatchingScore(request, requestMatchResult)).IsEqualTo(1.0);
        }
        public void RequestMessageParamMatcher_GetMatchingScore_KeyWith2ValuesPresentInUrl_And_With2Strings_Returns1_0()
        {
            // Assign
            var requestMessage = new RequestMessage(new UrlDetails("http://localhost?key=test1,test2"), "GET", "127.0.0.1");
            var matcher        = new RequestMessageParamMatcher(MatchBehaviour.AcceptOnMatch, "key", false, new[] { "test1", "test2" });

            // Act
            var    result = new RequestMatchResult();
            double score  = matcher.GetMatchingScore(requestMessage, result);

            // Assert
            Check.That(score).IsEqualTo(1.0d);
        }
        public void Request_WithUrl_WildcardMatcher()
        {
            // given
            var spec = Request.Create().WithUrl(new WildcardMatcher("*/foo"));

            // when
            var request = new RequestMessage(new Uri("http://localhost/foo"), "blabla", ClientIp);

            // then
            var requestMatchResult = new RequestMatchResult();

            Check.That(spec.GetMatchingScore(request, requestMatchResult)).IsEqualTo(1.0);
        }
Exemple #18
0
        public void RequestMessageHeaderMatcher_GetMatchingScore_RejectOnMatch_HeaderDoesNotExists()
        {
            // Assign
            var requestMessage = new RequestMessage(new UrlDetails("http://localhost"), "GET", "127.0.0.1");
            var matcher        = new RequestMessageHeaderMatcher(MatchBehaviour.RejectOnMatch, "h", "x", true);

            // Act
            var    result = new RequestMatchResult();
            double score  = matcher.GetMatchingScore(requestMessage, result);

            // Assert
            Check.That(score).IsEqualTo(1.0d);
        }
Exemple #19
0
        public void RequestMessageParamMatcher_GetMatchingScore_OnlyKeyPresent_WithNull()
        {
            // Assign
            var requestMessage = new RequestMessage(new Uri("http://localhost?key"), "GET", "127.0.0.1");
            var matcher        = new RequestMessageParamMatcher("key");

            // Act
            var    result = new RequestMatchResult();
            double score  = matcher.GetMatchingScore(requestMessage, result);

            // Assert
            Check.That(score).IsEqualTo(1.0d);
        }
        public void RequestMessageParamMatcher_GetMatchingScore_KeyWithValuePresentInUrl_MatchOnKey()
        {
            // Assign
            var requestMessage = new RequestMessage(new UrlDetails("http://[email protected]"), "GET", "127.0.0.1");
            var matcher        = new RequestMessageParamMatcher(MatchBehaviour.AcceptOnMatch, "key", false);

            // Act
            var    result = new RequestMatchResult();
            double score  = matcher.GetMatchingScore(requestMessage, result);

            // Assert
            Check.That(score).IsEqualTo(1.0d);
        }
        public void Should_specify_requests_matching_given_url_exact()
        {
            // given
            var spec = Request.Create().WithUrl("http://localhost/foo");

            // when
            var request = new RequestMessage(new Uri("http://localhost/foo"), "blabla", ClientIp);

            // then
            var requestMatchResult = new RequestMatchResult();

            Check.That(spec.GetMatchingScore(request, requestMatchResult)).IsEqualTo(1.0);
        }
Exemple #22
0
        public void RequestMessageCookieMatcher_GetMatchingScore_AcceptOnMatch_CookieDoesNotExists()
        {
            // Assign
            var requestMessage = new RequestMessage(new UrlDetails("http://localhost"), "GET", "127.0.0.1");
            var matcher        = new RequestMessageCookieMatcher(MatchBehaviour.AcceptOnMatch, "c", false, "x");

            // Act
            var    result = new RequestMatchResult();
            double score  = matcher.GetMatchingScore(requestMessage, result);

            // Assert
            Check.That(score).IsEqualTo(0.0d);
        }
Exemple #23
0
        public void Should_specify_requests_matching_given_path_and_method_patch()
        {
            // given
            var spec = Request.Create().WithPath("/foo").UsingPatch();

            // when
            var request = new RequestMessage(new Uri("http://localhost/foo"), "PATCH", ClientIp);

            // then
            var requestMatchResult = new RequestMatchResult();

            Check.That(spec.GetMatchingScore(request, requestMatchResult)).IsEqualTo(1.0);
        }
        public void Should_specify_requests_matching_given_param()
        {
            // given
            var spec = Request.Create().WithParam("bar", "1", "2");

            // when
            var request = new RequestMessage(new Uri("http://localhost/foo?bar=1&bar=2"), "PUT", ClientIp);

            // then
            var requestMatchResult = new RequestMatchResult();

            Check.That(spec.GetMatchingScore(request, requestMatchResult)).IsEqualTo(1.0);
        }
Exemple #25
0
        public void RequestMessageParamMatcher_GetMatchingScore_OnlyKeyPresentInUrl_MatchOnKeyWithEmptyArray()
        {
            // Assign
            var requestMessage = new RequestMessage(new UrlDetails("http://localhost?key"), "GET", "127.0.0.1");
            var matcher        = new RequestMessageParamMatcher(MatchBehaviour.AcceptOnMatch, "key", new string[] { });

            // Act
            var    result = new RequestMatchResult();
            double score  = matcher.GetMatchingScore(requestMessage, result);

            // Assert
            Check.That(score).IsEqualTo(1.0d);
        }
        public void Request_WithPathRegexMatcher_HasMatch()
        {
            // given
            var spec = Request.Create().WithPath(new RegexMatcher("^/foo"));

            // when
            var request = new RequestMessage(new UrlDetails("http://localhost/foo/bar"), "blabla", ClientIp);

            // then
            var requestMatchResult = new RequestMatchResult();

            Check.That(spec.GetMatchingScore(request, requestMatchResult)).IsEqualTo(1.0);
        }
Exemple #27
0
        public void RequestMessageParamMatcher_GetMatchingScore_KeyWithValuesPresentInUrl_MatchOnKeyWithValues_PartialMatch()
        {
            // Assign
            var requestMessage = new RequestMessage(new UrlDetails("http://localhost?key=test0,test2"), "GET", "127.0.0.1");
            var matcher        = new RequestMessageParamMatcher(MatchBehaviour.AcceptOnMatch, "key", new[] { "test1", "test2" });

            // Act
            var    result = new RequestMatchResult();
            double score  = matcher.GetMatchingScore(requestMessage, result);

            // Assert
            Check.That(score).IsEqualTo(0.5d);
        }
Exemple #28
0
        public void Request_WithPathRegex_false()
        {
            // given
            var spec = Request.Create().WithPath("/foo");

            // when
            var request = new RequestMessage(new Uri("http://localhost/bar"), "blabla", ClientIp);

            // then
            var requestMatchResult = new RequestMatchResult();

            Check.That(spec.GetMatchingScore(request, requestMatchResult)).IsNotEqualTo(1.0);
        }
Exemple #29
0
        public void RequestMessageParamMatcher_GetMatchingScore_KeyWithValuesPresentInUrl_MatchExactOnExactMatchers()
        {
            // Assign
            var requestMessage = new RequestMessage(new UrlDetails("http://localhost?key=test1,test2"), "GET", "127.0.0.1");
            var matcher        = new RequestMessageParamMatcher(MatchBehaviour.AcceptOnMatch, "key", new IStringMatcher[] { new ExactMatcher("test1"), new ExactMatcher("test2") });

            // Act
            var    result = new RequestMatchResult();
            double score  = matcher.GetMatchingScore(requestMessage, result);

            // Assert
            Check.That(score).IsEqualTo(1.0d);
        }
Exemple #30
0
        public void Request_WithPath_Spaces()
        {
            // Assign
            var spec = Request.Create().WithPath("/path/a b").UsingAnyMethod();

            // when
            var body    = new BodyData();
            var request = new RequestMessage(new UrlDetails("http://localhost/path/a b"), "GET", ClientIp, body);

            // then
            var requestMatchResult = new RequestMatchResult();

            Check.That(spec.GetMatchingScore(request, requestMatchResult)).IsEqualTo(1.0);
        }