Exemplo n.º 1
0
        public void Validate_When_Request_Is_Matched()
        {
            var dad = Stub.Create(9000).FromJson(_pactAsString);

            var response = DoHttpPost("/please/give/me/some/money");

            dad.Dispose();

            response.StatusCode.Should().Be(HttpStatusCode.OK);
        }
Exemplo n.º 2
0
        public void Validate_Stub_Can_Echo_Back_Status()
        {
            var dad = Stub.Create(9000).Echo(202);

            var response = DoHttpPost("/anything/anyway/", "{ A : \"foo\", B : \"bar\" }");

            dad.Dispose();

            response.StatusCode.Should().Be(HttpStatusCode.Accepted);
        }
Exemplo n.º 3
0
        public void Validate_When_Request_Contains_Authentication_Tokens()
        {
            var dad = Stub.Create(9000).FromFile("Data/SimplePact.json");

            var response = DoHttpPost("/please/give/me/some/money?oauth_consumer_key=please&oauth_timestamp=now&oauth_signature=me&oauth_signature=me");

            dad.Dispose();

            response.StatusCode.Should().Be(HttpStatusCode.OK);
        }
Exemplo n.º 4
0
        public void Validate_When_Request_Is_Matched()
        {
            var dad = Stub.Create(9000).FromFile("Data/SimplePact.json");

            var response = DoHttpPost("/please/give/me/some/money");

            dad.Dispose();

            response.StatusCode.Should().Be(HttpStatusCode.OK);
        }
Exemplo n.º 5
0
        public void Validate_When_Request_Has_Body_Default_Set_To_Match_Body()
        {
            var dad = Stub.Create(9000).FromFile("Data/PactWithReqBody.json");

            var response = DoHttpPost("/please/give/me/some/money", "{\r\n  \"name\": \"Joe\"\r\n}");

            dad.Dispose();

            response.StatusCode.Should().Be(HttpStatusCode.OK);
        }
Exemplo n.º 6
0
        public void Validate_When_Request_Has_Body_But_Is_Ignored()
        {
            var dad = Stub.Create(9000).FromFile("Data/PactWithReqBody.json", matchBody: false);

            var response = DoHttpPost("/please/give/me/some/money", "{\"name\": \"Joe\"}");

            dad.Dispose();

            response.StatusCode.Should().Be(HttpStatusCode.OK);
        }
        public override void establish_context()
        {
            externalComponentMapping = new ExternalComponentMapping(ComponentType.Component);
            externalComponentMapping.Set(x => x.Type, Layer.Defaults, typeof(ComponentTarget));
            var externalComponent = Stub <IExternalComponentMappingProvider> .Create(cfg =>
                                                                                     cfg.Stub(x => x.GetComponentMapping()).Return(externalComponentMapping));

            visitor = new ComponentReferenceResolutionVisitor(new [] { new ComponentMapComponentReferenceResolver() }, new[] { externalComponent });
            referenceComponentMapping = new ReferenceComponentMapping(ComponentType.Component, null, null, null, null);
        }
Exemplo n.º 8
0
        public void Validate_When_Request_Is_Not_Matched()
        {
            var dad = Stub.Create(9000).FromJson(_pactAsString);

            var response = DoHttpPost("/please/give/me/some/food");

            dad.Dispose();

            response.StatusCode.ToString().Should().Be("551");
            response.StatusDescription.Should().Be("Stub on port 9000 says interaction not found. Please verify that the pact associated with this port contains the following request(case insensitive) : Method 'POST', Path '/please/give/me/some/food', Body ''. If you have specified filters please also check them.");
        }
Exemplo n.º 9
0
        public void adding_listener_should_add_listener_to_underlying_dispatcher()
        {
            var dispatcher = Mock <IDiagnosticMessageDispatcher> .Create();

            var listener = Stub <IDiagnosticListener> .Create();

            new DiagnosticsConfiguration(dispatcher, l => { })
            .RegisterListener(listener);

            dispatcher.AssertWasCalled(x => x.RegisterListener(listener));
        }
Exemplo n.º 10
0
        public void Validate_When_Request_Has_Body_But_Is_Not_Matched()
        {
            var dad = Stub.Create(9000).FromFile("Data/PactWithReqBody.json", matchBody: true);

            var response = DoHttpPost("/please/give/me/some/money", "{\"name\": \"Jack\"}");

            dad.Dispose();

            response.StatusCode.ToString().Should().Be("551");
            response.StatusDescription.Should().Be("Stub on port 9000 says interaction not found. Please verify that the pact associated with this port contains the following request(case insensitive) : Method 'POST', Path '/please/give/me/some/money', Body '{\"name\": \"Jack\"}'. If you have specified filters please also check them.");
        }
Exemplo n.º 11
0
        public void Validate_When_Request_Contains_Unexpected_Authentication_Token()
        {
            var dad = Stub.Create(9000).FromFile("Data/SimplePact.json");

            var response = DoHttpPost("/please/give/me/some/money?oauth_password=abc");

            dad.Dispose();

            response.StatusCode.ToString().Should().Be("551");
            response.StatusDescription.Should().Be("Stub on port 9000 says interaction not found. Please verify that the pact associated with this port contains the following request(case insensitive) : Method 'POST', Path '/please/give/me/some/money?oauth_password=abc', Body ''. If you have specified filters please also check them.");
        }
Exemplo n.º 12
0
        public void Validate_When_Response_Has_Body()
        {
            var dad = Stub.Create(9000).FromFile("Data/PactWithRespBody.json");

            var response = DoHttpPost("/please/give/me/some/money");

            dad.Dispose();

            response.StatusCode.Should().Be(HttpStatusCode.OK);
            response.Content.Should().BeEquivalentTo("{\r\n  \"Money\": \"10\"\r\n}");
        }
Exemplo n.º 13
0
        public override void establish_context()
        {
            external_component_mapping = new ExternalComponentMapping(ComponentType.Component)
            {
                Type = typeof(ComponentTarget)
            };
            var external_component = Stub <IExternalComponentMappingProvider> .Create(cfg =>
                                                                                      cfg.Stub(x => x.GetComponentMapping()).Return(external_component_mapping));

            visitor = new ComponentReferenceResolutionVisitor(new[] { external_component });
            reference_component_mapping = new ReferenceComponentMapping(ComponentType.Component, null, null, null, null);
        }
        public void CreateMappingConfiguration()
        {
            logger = Stub <IDiagnosticLogger> .Create();

            cfg = new Configuration();

            SQLiteConfiguration.Standard
            .InMemory()
            .ConfigureProperties(cfg);

            mapping = new MappingConfiguration(logger);
        }
Exemplo n.º 15
0
        public void Validate_When_Request_Is_Matched()
        {
            var fakePactBroker = new FakePactBroker(FakePactBrokerUrl);

            fakePactBroker.RespondWith(_pactAsString);

            var dad = Stub.Create(9000).FromPactbroker(FakePactBrokerUrl);

            var response = DoHttpPost("/please/give/me/some/money");

            dad.Dispose();
            fakePactBroker.Dispose();

            response.StatusCode.Should().Be(HttpStatusCode.OK);
        }
        public void should_raise_formatted_results()
        {
            var results        = new DiagnosticResults(new ScannedSource[0], new Type[0], new Type[0], new SkippedAutomappingType[0], new Type[0], new AutomappingType[0]);
            var output         = "formatted output";
            var receivedOutput = "";
            var formatter      = Stub <IDiagnosticResultsFormatter> .Create(sb =>
                                                                            sb.Stub(x => x.Format(results))
                                                                            .Return(output));

            var listener = new StringLambdaOutputListener(x => { receivedOutput = x; });

            listener.SetFormatter(formatter);
            listener.Receive(results);

            receivedOutput.ShouldEqual(output);
        }
Exemplo n.º 17
0
        public void Validate_When_Response_Is_Set_To_Have_Dynamic_Guid()
        {
            var dad = Stub.Create(9000).FromFile("Data/StaticRulesPact.json");

            var response = DoHttpPost("/please/give/me/some/money");

            dad.Dispose();

            response.StatusCode.Should().Be(HttpStatusCode.OK);

            var dict = JsonConvert.DeserializeObject <Dictionary <string, dynamic> >(response.Content);

            Guid guid;
            var  isReciptGuid = Guid.TryParse((string)dict["receipt"], out guid);

            isReciptGuid.Should().BeTrue("The value of the auto-generated receipt in the response should be an GUID.");
        }
Exemplo n.º 18
0
        public void Validate_When_Filtered_On_Provider_State()
        {
            var fakePactBroker = new FakePactBroker(FakePactBrokerUrl);

            fakePactBroker.RespondWith(_pactAsString);

            var dad = Stub.Create(9000).FromPactbroker(FakePactBrokerUrl);

            dad.FilterOnProviderState("Dad has enough money and an advice");

            var response = DoHttpPost("/please/give/me/some/money");

            dad.Dispose();
            fakePactBroker.Dispose();

            response.StatusCode.Should().Be(HttpStatusCode.Accepted);
        }
Exemplo n.º 19
0
        public void Validate_When_Response_Is_Set_To_Have_Dynamic_Id_As_Integer()
        {
            var dad = Stub.Create(9000).FromFile("Data/StaticRulesPact.json");

            var response = DoHttpPost("/please/give/me/some/money");

            dad.Dispose();

            response.StatusCode.Should().Be(HttpStatusCode.OK);

            var dict = JsonConvert.DeserializeObject <Dictionary <string, dynamic> >(response.Content);

            int idInt;
            var isIdInt = int.TryParse((string)dict["amount"], out idInt);

            isIdInt.Should().BeTrue("The value of the auto-generated id in the response should be an integer.");
        }
Exemplo n.º 20
0
        public void Validate_When_Filtered_On_Description()
        {
            var fakePactBroker = new FakePactBroker(FakePactBrokerUrl);

            fakePactBroker.RespondWith(_pactAsString);

            var dad = Stub.Create(9000).FromPactbroker(FakePactBrokerUrl);

            dad.FilterOnDescription("a request for money or advice");

            var response = DoHttpPost("/please/give/me/some/money");

            dad.Dispose();
            fakePactBroker.Dispose();

            response.StatusCode.Should().Be(HttpStatusCode.Accepted);
        }
Exemplo n.º 21
0
        public void Validate_When_Filters_Are_Cleared()
        {
            var fakePactBroker = new FakePactBroker(FakePactBrokerUrl);

            fakePactBroker.RespondWith(_pactAsString);

            var dad = Stub.Create(9000).FromPactbroker(FakePactBrokerUrl);

            dad.FilterOnProviderState("Dad has enough money and an advice");
            dad.FilterOnDescription("a request for money or advice");
            dad.ClearFilters();

            var response = DoHttpPost("/please/give/me/some/money");

            dad.Dispose();
            fakePactBroker.Dispose();

            response.StatusCode.Should().Be(HttpStatusCode.OK);
        }
        public override void establish_context()
        {
            var externalComponentOne = Stub <IExternalComponentMappingProvider> .Create(cfg =>
            {
                var externalComponentMapping = new ExternalComponentMapping(ComponentType.Component);
                externalComponentMapping.Set(x => x.Type, Layer.Defaults, typeof(ComponentTarget));
                cfg.Stub(x => x.GetComponentMapping()).Return(externalComponentMapping);
                cfg.Stub(x => x.Type).Return(typeof(ComponentTarget));
            });

            var externalComponentTwo = Stub <IExternalComponentMappingProvider> .Create(cfg =>
            {
                var externalComponentMapping = new ExternalComponentMapping(ComponentType.Component);
                externalComponentMapping.Set(x => x.Type, Layer.Defaults, typeof(ComponentTarget));
                cfg.Stub(x => x.GetComponentMapping()).Return(externalComponentMapping);
                cfg.Stub(x => x.Type).Return(typeof(ComponentTarget));
            });

            visitor        = new ComponentReferenceResolutionVisitor(new[] { new ComponentMapComponentReferenceResolver() }, new[] { externalComponentOne, externalComponentTwo });
            memberProperty = new DummyPropertyInfo("Component", typeof(ComponentTarget)).ToMember();
        }
Exemplo n.º 23
0
        public override void establish_context()
        {
            var external_component_one = Stub <IExternalComponentMappingProvider> .Create(cfg =>
            {
                cfg.Stub(x => x.GetComponentMapping()).Return(new ExternalComponentMapping(ComponentType.Component)
                {
                    Type = typeof(ComponentTarget)
                });
                cfg.Stub(x => x.Type).Return(typeof(ComponentTarget));
            });

            var external_component_two = Stub <IExternalComponentMappingProvider> .Create(cfg =>
            {
                cfg.Stub(x => x.GetComponentMapping()).Return(new ExternalComponentMapping(ComponentType.Component)
                {
                    Type = typeof(ComponentTarget)
                });
                cfg.Stub(x => x.Type).Return(typeof(ComponentTarget));
            });

            visitor         = new ComponentReferenceResolutionVisitor(new[] { external_component_one, external_component_two });
            member_property = new DummyPropertyInfo("Component", typeof(ComponentTarget)).ToMember();
        }
Exemplo n.º 24
0
        public void Validate_When_File_Is_Not_Found()
        {
            var ex = Assert.Throws <FileNotFoundException>(() => Stub.Create(9000).FromFile("NoFile.json"));

            ex.Message.Should().Be("Unable to find the specified file.");
        }
Exemplo n.º 25
0
        public void Validate_When_Pact_Is_Not_Valid()
        {
            var exception = Assert.Throws <InvalidDataException>(() => Stub.Create(9000).FromJson("<Invalid Json"));

            exception.Message.Should().Be("The pact file is not a valid JSON document.");
        }