Ejemplo n.º 1
0
 public void ShouldStartInSimulationMode()
 {
     using (var runner = HoverflyRunner.StartInSimulationMode(HoverFlyTestConfig.GetHoverFlyConfigWIthBasePath()))
     {
         Assert.Equal(HoverflyMode.Simulate, runner.GetHoverflyMode());
     }
 }
Ejemplo n.º 2
0
        public void ShouldGetHeaderInTheSimulation_WhenCapturingSpecificHeader()
        {
            var config = HoverFlyTestConfig.GetHoverFlyConfigWIthBasePath();

            config.SetCaptureHeaders("My-Header");

            using (var hoverfly = new Hoverfly(HoverflyMode.Capture, config))
            {
                hoverfly.Start();

                var header = new Dictionary <string, string> {
                    { "My-Header", "Value" }
                };

                var result = GetContentFrom(
                    "http://echo.jsontest.com/key/value/three/four?name=test",
                    header);

                var simulation     = hoverfly.GetSimulation();
                var capturedHeader = simulation.HoverflyData.RequestResponsePair.First().Request.Headers;

                Assert.NotNull(capturedHeader);
                Assert.Equal("My-Header", capturedHeader.First().Key);
            }
        }
Ejemplo n.º 3
0
        public void ShouldReturnCorrectSimluationFromHoverfly_WhenImportingSimulation()
        {
            using (var hoverfly = new Hoverfly(HoverflyMode.Simulate, HoverFlyTestConfig.GetHoverFlyConfigWIthBasePath()))
            {
                hoverfly.Start();

                var simulation = CreateTestSimulation();

                hoverfly.ImportSimulation(simulation);

                var expectedSimulation = hoverfly.GetSimulation();

                hoverfly.Stop();

                var expectedRequest  = expectedSimulation.HoverflyData.RequestResponsePair.First().Request;
                var expectedResponse = expectedSimulation.HoverflyData.RequestResponsePair.First().Response;

                Assert.Equal(expectedRequest.Method.ExactMatch, "GET");
                Assert.Equal(expectedRequest.Path.ExactMatch, "/key/value/three/four");
                Assert.Equal(expectedRequest.Destination.ExactMatch, "echo.jsontest.com");
                Assert.Equal(expectedRequest.Scheme.ExactMatch, "http");

                Assert.Equal(expectedResponse.Status, 200);
                Assert.Equal(expectedResponse.Body, "{\n   \"three\": \"four\",\n   \"key\": \"value\"\n}\n");
            }
        }
Ejemplo n.º 4
0
        public void ShouldReturnCorrectSimulations_WhenUsingAnExistingSimulateAndWhenAddingOne()
        {
            using (var hoverfly = new Hoverfly(HoverflyMode.Simulate, HoverFlyTestConfig.GetHoverFlyConfigWIthBasePath()))
            {
                hoverfly.Start();

                hoverfly.ImportSimulation(new FileSimulationSource("simulation_test.json"));

                hoverfly.AddSimulation(DslSimulationSource.Dsl(
                                           Service("http://echo.jsontest.com")
                                           .Get("/key/value/six/seven")
                                           .QueryParam("name", "test")
                                           .WillReturn(
                                               Success("Hello World!", "application/json"))));

                var simulation = hoverfly.GetSimulation();

                hoverfly.Stop();

                Assert.Equal("echo.jsontest.com", simulation.HoverflyData.RequestResponsePair.First().Request.Destination.ExactMatch);
                Assert.Equal("/key/value/one/two", simulation.HoverflyData.RequestResponsePair.First().Request.Path.ExactMatch);

                Assert.Equal("echo.jsontest.com", simulation.HoverflyData.RequestResponsePair.Last().Request.Destination.ExactMatch);
                Assert.Equal("/key/value/six/seven", simulation.HoverflyData.RequestResponsePair.Last().Request.Path.ExactMatch);
            }
        }
Ejemplo n.º 5
0
 public void ShouldReturnCaptureMode_WhenHoverFlyIsSetToUseCaptureMode()
 {
     using (var hoverfly = new Hoverfly(HoverflyMode.Capture, HoverFlyTestConfig.GetHoverFlyConfigWIthBasePath()))
     {
         hoverfly.Start();
         Assert.Equal(HoverflyMode.Capture, hoverfly.GetMode());
     }
 }
Ejemplo n.º 6
0
        public void ShouldStartInCaptureMode()
        {
            var fakeDestination = new FakeSimulationDestinationSource();

            using (var runner = HoverflyRunner.StartInCaptureMode(fakeDestination, HoverFlyTestConfig.GetHoverFlyConfigWIthBasePath()))
            {
                Assert.Equal(HoverflyMode.Capture, runner.GetHoverflyMode());
            }
        }
Ejemplo n.º 7
0
        public void ShouldGetExternalResponse_WhenUsingSpyModeAndSimulationIsNotAdded()
        {
            using (var runner = HoverflyRunner.StartInSpyMode(HoverFlyTestConfig.GetHoverFlyConfigWIthBasePath()))
            {
                var result = GetContentFrom("http://echo.jsontest.com/key/value/one/two?name=testSpy");

                Assert.Equal("{\n   \"one\": \"two\",\n   \"key\": \"value\"\n}\n", result);
            }
        }
Ejemplo n.º 8
0
        public void ShouldExportSimulationOnStop_WhenInCaptureMode()
        {
            var fakeDestination = new FakeSimulationDestinationSource();

            using (var runner = HoverflyRunner.StartInCaptureMode(fakeDestination, HoverFlyTestConfig.GetHoverFlyConfigWIthBasePath()))
            {
            }

            Assert.Equal(true, fakeDestination.WasSaved);
        }
Ejemplo n.º 9
0
        public void ShouldLoadSimulation_WhenStartInSimulationModeWithASimulationSource()
        {
            var fakeSource = new FileSimulationSource("simulation_test.json");

            using (var runner = HoverflyRunner.StartInSimulationMode(fakeSource, HoverFlyTestConfig.GetHoverFlyConfigWIthBasePath()))
            {
                var simulation = runner.GetSimulation();
                Assert.Equal("echo.jsontest.com", simulation.HoverflyData.RequestResponsePair.First().Request.Destination.ExactMatch);
                Assert.Equal(HoverflyMode.Simulate, runner.GetHoverflyMode());
            }
        }
Ejemplo n.º 10
0
        public void ShouldReturnCorrectHoverflyMode()
        {
            using (var hoverfly = new Hoverfly(HoverflyMode.Simulate, HoverFlyTestConfig.GetHoverFlyConfigWIthBasePath()))
            {
                hoverfly.Start();

                var mode = hoverfly.GetMode();

                hoverfly.Stop();

                Assert.Equal(HoverflyMode.Simulate, mode);
            }
        }
Ejemplo n.º 11
0
        public void ShouldReturnCorrectSimulation_WhenUsingSimulateWithDsl()
        {
            using (var runner = HoverflyRunner.StartInSimulationMode(HoverFlyTestConfig.GetHoverFlyConfigWIthBasePath()))
            {
                runner.Simulate(DslSimulationSource.Dsl(
                                    Service("http://echo.jsontest.com")
                                    .Get("/key/value/three/four")
                                    .QueryParam("name", "test")
                                    .WillReturn(
                                        Success("Hello World!", "application/json"))));

                var result = GetContentFrom("http://echo.jsontest.com/key/value/three/four?name=test");
                Assert.Equal("Hello World!", result);
            }
        }
Ejemplo n.º 12
0
        public void ShouldExportSimulation()
        {
            using (var hoverfly = new Hoverfly(HoverflyMode.Capture, HoverFlyTestConfig.GetHoverFlyConfigWIthBasePath()))
            {
                hoverfly.Start();

                GetContentFrom("http://echo.jsontest.com/key/value/one/two");

                //http://localhost:8888/api/v2/simulation
                var destinatonSource = new FileSimulationSource("simulation.json");
                hoverfly.ExportSimulation(destinatonSource);

                hoverfly.Stop();
            }
        }
Ejemplo n.º 13
0
        public void ShouldGetSimulationResponse_WhenUsingSpyModeAndSimulationDslIsAreadyAddedDuringStart()
        {
            var simulation = DslSimulationSource.Dsl(
                Service("http://echo.jsontest.com")
                .Get("/key/value/three/four")
                .QueryParam("name", "test")
                .WillReturn(
                    Success("MyData", "application/json")));

            using (var runner = HoverflyRunner.StartInSpyMode(simulation, HoverFlyTestConfig.GetHoverFlyConfigWIthBasePath()))
            {
                var result = GetContentFrom("http://echo.jsontest.com/key/value/three/four?name=test");

                Assert.Equal("MyData", result);
            }
        }
Ejemplo n.º 14
0
        public void ShouldReturnCorrectRestultFromARequest_WhenImportingSimulationAndUsingSimulationMode()
        {
            using (var hoverfly = new Hoverfly(HoverflyMode.Simulate, HoverFlyTestConfig.GetHoverFlyConfigWIthBasePath()))
            {
                hoverfly.Start();

                var simulation = CreateTestSimulation();

                hoverfly.ImportSimulation(simulation);

                var result = GetContentFrom("http://echo.jsontest.com/key/value/three/four?name=test");

                hoverfly.Stop();

                Assert.Equal("{\n   \"three\": \"four\",\n   \"key\": \"value\"\n}\n", result);
            }
        }
Ejemplo n.º 15
0
        public void ShouldReturnCorrectSimulationDataResult_WhenHoverflyInSimulationMode()
        {
            using (var hoverfly = new Hoverfly(HoverflyMode.Simulate, HoverFlyTestConfig.GetHoverFlyConfigWIthBasePath()))
            {
                hoverfly.Start();

                // The time.jsontest.com returns the current time and milliseconds from the server.
                var result = GetContentFrom("http://time.jsontest.com");

                Thread.Sleep(10);

                var result2 = GetContentFrom("http://time.jsontest.com");

                hoverfly.Stop();

                Assert.Equal(result, result2);
            }
        }
Ejemplo n.º 16
0
        public void ShouldGetCorrectResponse_WhenUsingDsl()
        {
            using (var hoverfly = new Hoverfly(HoverflyMode.Simulate, HoverFlyTestConfig.GetHoverFlyConfigWIthBasePath()))
            {
                hoverfly.Start();

                hoverfly.ImportSimulation(
                    DslSimulationSource.Dsl(
                        Service("http://echo.jsontest.com")
                        .Get("/key/value/three/four")
                        .QueryParam("name", "test")
                        .WillReturn(
                            Success("{\n   \"three\": \"four\",\n   \"key\": \"value\"\n}\n", "application/json"))));

                var result = GetContentFrom("http://echo.jsontest.com/key/value/three/four?name=test");

                Assert.Equal("{\n   \"three\": \"four\",\n   \"key\": \"value\"\n}\n", result);
            }
        }
Ejemplo n.º 17
0
        public void ShouldGetSimulationResponse_WhenUsingSpyModeAndSimulationIsAreadyAdded()
        {
            using (var hoverfly = new Hoverfly(HoverflyMode.Spy, HoverFlyTestConfig.GetHoverFlyConfigWIthBasePath()))
            {
                hoverfly.Start();

                hoverfly.ImportSimulation(
                    DslSimulationSource.Dsl(
                        Service("http://echo.jsontest.com")
                        .Get("/key/value/three/four")
                        .QueryParam("name", "test")
                        .WillReturn(
                            Success("MyData", "application/json"))));

                var result = GetContentFrom("http://echo.jsontest.com/key/value/three/four?name=test");

                Assert.Equal("MyData", result);
            }
        }
Ejemplo n.º 18
0
        public void ShouldBeDelay_WhenAddingADelaryToRequestWithDsl()
        {
            using (var hoverfly = new Hoverfly(HoverflyMode.Simulate, HoverFlyTestConfig.GetHoverFlyConfigWIthBasePath()))
            {
                hoverfly.Start();

                hoverfly.ImportSimulation(
                    DslSimulationSource.Dsl(
                        Service("http://echo.jsontest.com")
                        .Get("/key/value/three/four")
                        .WithDelay(2000)
                        .WillReturn(Success("Test", "application/json"))));

                var stopWatch = Stopwatch.StartNew();
                GetContentFrom("http://echo.jsontest.com/key/value/three/four");
                stopWatch.Stop();

                Assert.Equal(true, stopWatch.Elapsed.TotalMilliseconds >= 2000);
            }
        }
Ejemplo n.º 19
0
        public async Task ShouldReturnCorrectRestultFromAPutRequest_WhenImportingSimulationAndUsingSimulationMode()
        {
            using (var hoverfly = new Hoverfly(HoverflyMode.Simulate, HoverFlyTestConfig.GetHoverFlyConfigWIthBasePath()))
            {
                hoverfly.Start();

                hoverfly.ImportSimulation(new FileSimulationSource("simulation_test2.json"));

                var httpClient = new HttpClient();

                var content = new StringContent("{\"items\":[{\"sku\":\"6948017\",\"quantity\":2}]}", Encoding.UTF8, "application/json");

                var result = await httpClient.PutAsync("https://echo.jsontest.com/cart", content);

                var contentRestult = await result.Content.ReadAsStringAsync();

                hoverfly.Stop();

                Assert.Equal("{\n   \"one\": \"two\",\n   \"key\": \"value\"\n}\n", contentRestult);
            }
        }
Ejemplo n.º 20
0
        public void ShouldGetSimulationResponse_WhenUsingSpyModeAndSimulationFromFileIsAreadyAdded()
        {
            using (var runner = HoverflyRunner.StartInSpyMode("simulation_test.json", HoverFlyTestConfig.GetHoverFlyConfigWIthBasePath()))
            {
                var result = GetContentFrom("http://echo.jsontest.com/key/value/one/two");

                Assert.Equal("{\n   \"one\": \"two\",\n   \"key\": \"value\"\n}\n", result);
            }
        }