public void BodyMatchFilterEmptyJsonMatchSuccess()
        {
            #region
            var fakeScenario = scenarioFaker.Generate();
            fakeScenario.RequestMatchRules.BodyRules =
                new List <BodyRule> {
                new BodyRule(ComparerType.JSONEQUALITY, new JObject())
            };

            var input = new
            {
                Scenarios = new List <Scenario>()
                {
                    fakeScenario
                },
                Body = new JObject()
            };

            #endregion

            var Target = new BodyMatchFilter <ProcessMessagePort>(new AssertFactory(), new RuleMatcher());

            var Actual = Target.Process(new ProcessMessagePort()
            {
                Scenarios = input.Scenarios, Body = input.Body.ToString()
            })
                         .BodyMatchResults.Where(x => x.Match.Equals(MatchResultType.Success)).Select(x => x.ScenarioId);

            var Expected = new List <string> {
                fakeScenario.Id
            };

            Assert.Equal(Expected, Actual);
        }
        public void BodyMatchFilterMatchFail()
        {
            #region
            var fakeScenario = scenarioFaker.Generate();

            var input = new
            {
                Scenarios = new List <Scenario>()
                {
                    fakeScenario
                },
                Body = "{}"
            };

            #endregion

            var Target = new BodyMatchFilter <ProcessMessagePort>(new AssertFactory(), new RuleMatcher());

            var Actual = Target.Process(new ProcessMessagePort()
            {
                Scenarios = input.Scenarios, Body = input.Body
            })
                         .BodyMatchResults.Where(x => x.Match.Equals(MatchResultType.Fail)).Select(x => x.ScenarioId).ToList();

            Assert.Contains(fakeScenario.Id, Actual);
        }
        public void BodyMatchContainsNestedJSONKeyValueFirstTestFail()
        {
            #region
            var fakeScenario = scenarioFaker.Generate();
            fakeScenario.RequestMatchRules.BodyRules =
                new List <BodyRule> {
                new BodyRule(ComparerType.JSONCONTAINS, JObject.Parse("{'a': 'b', 'c': 'd', 'e': {'f': 'g'}}"))
            };

            var input = new
            {
                Scenarios = new List <Scenario>()
                {
                    fakeScenario
                },
                Body = JObject.Parse("{'e': 'f'}")
            };

            #endregion

            var Target = new BodyMatchFilter <ProcessMessagePort>(new AssertFactory(), new RuleMatcher());

            var Actual = Target.Process(new ProcessMessagePort()
            {
                Scenarios = input.Scenarios, Body = input.Body.ToString()
            })
                         .BodyMatchResults.Where(x => x.Match.Equals(MatchResultType.Success)).Select(x => x.ScenarioId);

            var Expected = new List <string> {
                fakeScenario.Id
            };

            Assert.Empty(Actual);
        }
        public void BodyMatchFilterMatchSuccess()
        {
            #region
            var fakeScenario = scenarioFaker.Generate();

            var input = new
            {
                Scenarios = new List <Scenario>()
                {
                    fakeScenario
                },
                Body = fakeScenario.RequestMatchRules.BodyRules.ToList()[0].RuleValue.ToString()
            };

            #endregion

            var Target = new BodyMatchFilter <ProcessMessagePort>(new AssertFactory(), new RuleMatcher());

            var Actual = Target.Process(new ProcessMessagePort()
            {
                Scenarios = input.Scenarios, Body = input.Body
            })
                         .BodyMatchResults.Where(x => x.Match.Equals(MatchResultType.Success)).Select(x => x.ScenarioId);

            var Expected = fakeScenario.Id;

            Assert.Equal(Expected, Actual.First());
        }
        public void BodyMatchEqualitysPartialTripleNestedTestFail()
        {
            #region
            var fakeScenario = scenarioFaker.Generate();
            fakeScenario.RequestMatchRules.BodyRules =
                new List <BodyRule> {
                new BodyRule(ComparerType.JSONEQUALITY, JObject.Parse("{'a': 'b'}"))
            };

            var input = new
            {
                Scenarios = new List <Scenario>()
                {
                    fakeScenario
                },
                Body = JObject.Parse("{'x': {'a': 'c'}, 'xy': {'a': 'd', 'b': {'a': 'b'}}}")
            };

            #endregion

            var Target = new BodyMatchFilter <ProcessMessagePort>(new AssertFactory(), new RuleMatcher());

            var Actual = Target.Process(new ProcessMessagePort()
            {
                Scenarios = input.Scenarios, Body = input.Body.ToString()
            })
                         .BodyMatchResults.Where(x => x.Match.Equals(MatchResultType.Success)).Select(x => x.ScenarioId);

            var Expected = new List <string> {
                fakeScenario.Id
            };

            Assert.Empty(Actual);
        }
示例#6
0
 public MockServerProcessor(
     PathValidationFilter <ProcessMessagePort> pathValidationFilter,
     QueryMatchFilter <ProcessMessagePort> queryMatchFilter,
     EndpointMatchFilter <ProcessMessagePort> endpointMatchFilter,
     BodyMatchFilter <ProcessMessagePort> bodyMatchFilter,
     HeaderMatchFilter <ProcessMessagePort> headerMatchFilter,
     UrlMatchFilter <ProcessMessagePort> urlMatchFilter,
     ResponseSelectorFilter <ProcessMessagePort> responseSelectorFilter,
     PolicyFilter <ProcessMessagePort> policyFilter
     )
 {
     this.pathValidationFilter   = pathValidationFilter;
     this.queryMatchFilter       = queryMatchFilter;
     this.endpointMatchFilter    = endpointMatchFilter;
     this.bodyMatchFilter        = bodyMatchFilter;
     this.blockFactory           = new SyncBlockFactory(this.cancellationTokenSource);
     this.headerMatchFilter      = headerMatchFilter;
     this.urlMatchFilter         = urlMatchFilter;
     this.responseSelectorFilter = responseSelectorFilter;
     this.policyFilter           = policyFilter;
 }