public void EncodesSpecialCharactersInFormBody()
        {
            var    port = new AwaitedPort(new TestPort()).Value();
            string body = "";

            using (var server =
                       new HttpMock(port,
                                    new FkWire(req =>
            {
                body = new TextBody.Of(req).AsString();
            })
                                    ).Value()
                   )
            {
                new Verified(
                    new AspNetCoreWire(
                        new AspNetCoreClients(),
                        new TimeSpan(0, 1, 0)
                        ),
                    new ExpectedStatus(200)
                    ).Response(
                    new Get(
                        new Scheme("http"),
                        new Host("localhost"),
                        new Port(server.Port),
                        new FormParam("key-name", "test&+=xyz"),
                        new BearerTokenAuth("Bearer sdfnhiausihfnksajn")
                        )
                    );
            }
            Assert.Equal(
                "key-name=test%26%2B%3Dxyz",
                body
                );
        }
        public void SendsHeaders()
        {
            var port   = new AwaitedPort(new TestPort()).Value();
            var header = "";

            using (var server =
                       new HttpMock(port,
                                    new FkWire(req =>
            {
                header = new FirstOf <string>(new Authorization.Of(req)).Value();
                return(new Response.Of(200, "OK"));
            })
                                    ).Value()
                   )
            {
                new AspNetCoreWire(
                    new AspNetCoreClients(),
                    new TimeSpan(0, 1, 0)
                    ).Response(
                    new Get(
                        new Scheme("http"),
                        new Host("localhost"),
                        new Port(server.Port),
                        new Header("Authorization", "Basic dXNlcjpwYXNzd29yZA==")
                        )
                    ).Wait(30000);
            }
            Assert.Equal(
                "Basic dXNlcjpwYXNzd29yZA==",
                header
                );
        }
        public void ReturnsBody()
        {
            var port = new AwaitedPort(new TestPort()).Value();

            using (var server =
                       new HttpMock(port,
                                    new FkWire(
                                        new TextOf("very important content")
                                        )
                                    ).Value()
                   )
            {
                Assert.Equal(
                    "very important content",
                    new TextOf(
                        new Body.Of(
                            new AspNetCoreWire(
                                new AspNetCoreClients(),
                                new TimeSpan(0, 1, 0)
                                ).Response(
                                new Get(
                                    new Scheme("http"),
                                    new Host("localhost"),
                                    new Port(server.Port)
                                    )
                                )
                            )
                        ).AsString()
                    );
            }
        }
Exemplo n.º 4
0
        public void Returns200()
        {
            var port = new AwaitedPort(new TestPort()).Value();

            using (var server =
                       new HttpMock(port,
                                    new FkWire()
                                    ).Value()
                   )
            {
                Assert.Equal(
                    200,
                    new Status.Of(
                        new AspNetCoreWire(
                            new AspNetCoreClients(),
                            new TimeSpan(0, 1, 0)
                            ).Response(
                            new Get(
                                new Scheme("http"),
                                new Host("localhost"),
                                new Port(server.Port),
                                new Path("test/asdf")
                                )
                            )
                        ).AsInt()
                    );
            }
        }
Exemplo n.º 5
0
        public void DeliversXmlResponse()
        {
            var port = new AwaitedPort(new TestPort()).Value();

            using (var server =
                       new HttpMock(port,
                                    new FkWire(req =>
            {
                return(new Response.Of(new Body(new XMLCursor(new InputOf("<test/>")))));
            })
                                    ).Value()
                   )
            {
                var response =
                    AsyncContext.Run(() =>
                                     new AspNetCoreWire(
                                         new AspNetCoreClients(),
                                         new TimeSpan(0, 1, 0)
                                         ).Response(
                                         new Get($"http://localhost:{port}?importantQueryParam=importantValue")
                                         )
                                     );

                Assert.True(
                    response.ContainsKey("body")
                    );
            }
        }
Exemplo n.º 6
0
        public async Task rename_via_ContentDisposition()
        {
            var test_file_base64 = "dGVzdA==";
            var test_plaintext   = "test";

            var expectedFilename = "file.aax";

            try
            {
                var response = new HttpResponseMessage
                {
                    Content = new ByteArrayContent(Convert.FromBase64String(test_file_base64))
                };
                response.Content.Headers.ContentDisposition = new System.Net.Http.Headers.ContentDispositionHeaderValue("attachment")
                {
                    FileName = "foo_ep6.aax"
                };

                var client = new HttpClient(HttpMock.GetHandler(response));

                var finalFile = await client.DownloadFileAsync("http://t.co.uk/downloadme?a=1", "file.xyz");

                await Task.Delay(100);

                finalFile.Should().Be(expectedFilename);
                File.Exists(expectedFilename).Should().BeTrue();
                File.ReadAllText(expectedFilename).Should().Be(test_plaintext);
            }
            finally
            {
                File.Delete(expectedFilename);
            }
        }
Exemplo n.º 7
0
        public void ListensToAnyPath()
        {
            var port     = new AwaitedPort(new TestPort()).Value();
            var clients  = new AspNetCoreClients();
            var requests = 0;

            using (var server =
                       new HttpMock(port,
                                    new FkWire(req =>
            {
                requests++;
                return(new Response.Of(200, "OK"));
            })
                                    ).Value()
                   )
            {
                Task.WaitAll(
                    new AspNetCoreWire(clients, new TimeSpan(0, 1, 0)).Response(
                        new Get($"http://localhost:{port}")
                        ),
                    new AspNetCoreWire(clients, new TimeSpan(0, 1, 0)).Response(
                        new Get($"http://localhost:{port}/path")
                        ),
                    new AspNetCoreWire(clients, new TimeSpan(0, 1, 0)).Response(
                        new Get($"http://localhost:{port}/another/path")
                        )
                    );
            }
            Assert.Equal(
                3,
                requests
                );
        }
Exemplo n.º 8
0
        public void ConfigureSessionResponseShouldThrowForNonSuccessCode()
        {
            using (var httpResponseMessage = new HttpResponseMessage
            {
                StatusCode = HttpStatusCode.BadRequest,
                Content = new StringContent("{}")
            })
            {
                SandboxClient             docScanSandboxClient;
                Mock <HttpMessageHandler> handlerMock = HttpMock.SetupMockMessageHandler(httpResponseMessage);

                using var httpClient = new HttpClient(handlerMock.Object);
                docScanSandboxClient = SandboxClient.Builder(httpClient)
                                       .WithClientSdkId(_someSdkId)
                                       .WithKeyPair(KeyPair.Get())
                                       .Build();

                var exception = Assert.Throws <SandboxException>(() =>
                {
                    docScanSandboxClient.ConfigureSessionResponse(
                        _someSessionId,
                        _sandboxResponseConfig);
                });

                Assert.Contains("Failed validation - Status Code: '400' (BadRequest). Content: '{}'", exception.Message, StringComparison.Ordinal);
            };
        }
        public void SendsBody()
        {
            var port = new AwaitedPort(new TestPort()).Value();
            var body = "";

            using (var server =
                       new HttpMock(port,
                                    new FkWire(req =>
            {
                body =
                    new TextOf(
                        new Body.Of(req)
                        ).AsString();
                return(new Response.Of(200, "OK"));
            })
                                    ).Value()
                   )
            {
                new AspNetCoreWire(
                    new AspNetCoreClients(),
                    new TimeSpan(0, 1, 0)
                    ).Response(
                    new Get(
                        new Scheme("http"),
                        new Host("localhost"),
                        new Port(server.Port),
                        new TextBody("very important content")
                        )
                    ).Wait(30000);
            }
            Assert.Equal(
                "very important content",
                body
                );
        }
Exemplo n.º 10
0
        public void ForwardsQueryParams()
        {
            var port       = new AwaitedPort(new TestPort()).Value();
            var queryParam = "";

            using (var server =
                       new HttpMock(port,
                                    new FkWire(req =>
            {
                queryParam = new QueryParam.Of(req, "importantQueryParam").AsString();
                return(new Response.Of(200, "OK"));
            })
                                    ).Value()
                   )
            {
                new AspNetCoreWire(
                    new AspNetCoreClients(),
                    new TimeSpan(0, 1, 0)
                    ).Response(
                    new Get($"http://localhost:{port}?importantQueryParam=importantValue")
                    ).Wait(30000);
            }
            Assert.Equal(
                "importantValue",
                queryParam
                );
        }
Exemplo n.º 11
0
        public async Task DelegatingHandlerMultiTestWithDuplicate()
        {
            var handler = HttpMock.Mock()
                          .For("/test1")
                          .Accepts("request1")
                          .Returns("response1")
                          .For("/test2")
                          .Accepts("request2")
                          .Returns("response2")
                          .For("/test2")
                          .Accepts("request2")
                          .Returns("response2")
                          .BuildDelegatingHandler(() => new FakeDelegatingHandler());
            var responses = await handler.Invoke();

            int counter = 1;

            foreach (var response in responses)
            {
                response.StatusCode.Should().Be(HttpStatusCode.OK);
                var data = await response.GetContentAsStringAsync();

                data.Should().Be($"response{counter}request{counter}");
                counter++;
            }
        }
Exemplo n.º 12
0
        public void SetupSharingProfileShouldReturnToken()
        {
            string tokenValue = "kyHPjq2+Y48cx+9yS/XzmW09jVUylSdhbP+3Q9Tc9p6bCEnyfa8vj38";

            using (var httpResponseMessage = new HttpResponseMessage
            {
                StatusCode = HttpStatusCode.OK,
                Content = new StringContent("{\"token\": \"" + tokenValue + "\"}")
            })
            {
                SandboxClient             yotiSandboxClient;
                Mock <HttpMessageHandler> handlerMock = HttpMock.SetupMockMessageHandler(httpResponseMessage);

                using var httpClient = new HttpClient(handlerMock.Object);
                yotiSandboxClient    = new SandboxClientBuilder(httpClient)
                                       .WithClientSdkId(_someSdkId)
                                       .WithKeyPair(KeyPair.Get())
                                       .Build();

                string result = yotiSandboxClient.SetupSharingProfile(
                    _yotiTokenRequest);

                Assert.Equal(tokenValue, result);
            };
        }
Exemplo n.º 13
0
        public void Returns404()
        {
            var port = new AwaitedPort(new TestPort()).Value();

            using (var server =
                       new HttpMock(port,
                                    new KvpOf <IWire>("path",
                                                      new FkWire()
                                                      )
                                    ).Value()
                   )
            {
                Assert.Equal(
                    404,
                    new Status.Of(
                        new AspNetCoreWire(
                            new AspNetCoreClients(),
                            new TimeSpan(0, 1, 0)
                            ).Response(
                            new Get($"http://localhost:{port}/unknown/path")
                            )
                        ).AsInt()
                    );
            }
        }
Exemplo n.º 14
0
        public void SetupSharingProfileShouldThrowForNonSuccessCode()
        {
            using (var httpResponseMessage = new HttpResponseMessage
            {
                StatusCode = HttpStatusCode.BadRequest,
                Content = new StringContent("{}")
            })
            {
                SandboxClient             yotiSandboxClient;
                Mock <HttpMessageHandler> handlerMock = HttpMock.SetupMockMessageHandler(httpResponseMessage);

                using var httpClient = new HttpClient(handlerMock.Object);
                yotiSandboxClient    = new SandboxClientBuilder(httpClient)
                                       .WithClientSdkId(_someSdkId)
                                       .WithKeyPair(KeyPair.Get())
                                       .Build();

                var exception = Assert.Throws <SandboxException>(() =>
                {
                    yotiSandboxClient.SetupSharingProfile(
                        _yotiTokenRequest);
                });

                Assert.Contains("Error when setting up sharing profile", exception.Message, StringComparison.Ordinal);
            };
        }
 public void SetupServer(string baseUrl)
 {
     if (HttpMock == null)
     {
         HttpMock = new HttpMock();
         HttpMock.Start(baseUrl);
     }
 }
Exemplo n.º 16
0
 public void Initialize()
 {
     httpServiceMock = new HttpMock();
     fooResponse     = new Foo()
     {
         UserName = userName, Password = password
     };
     fakeHttpMessageHandler = new Mock <FakeHttpMessageHandler> {
         CallBase = true
     };
     HttpService.http = new HttpClient(fakeHttpMessageHandler.Object);
 }
Exemplo n.º 17
0
        public void SetUp()
        {
            HttpMock httpMock = new HttpMock();

            HttpContext.Current = httpMock.HttpContext;
            service             = Substitute.For <IAccountService>();
            accountId           = HttpContext.Current.User.Identity.Name;
            service.AccountExists(accountId).Returns(true);

            controller = new HomeController(service);
            controller.ControllerContext             = new ControllerContext();
            controller.ControllerContext.HttpContext = httpMock.HttpContextBase;
        }
Exemplo n.º 18
0
        public void SetUp()
        {
            HttpMock httpMock = new HttpMock();

            Authorization.Provider = Substitute.For <IAuthorizationProvider>();
            accountId      = httpMock.HttpContextBase.User.Identity.Name;
            controller     = Substitute.ForPartsOf <BaseControllerProxy>();
            controller.Url = new UrlHelper(httpMock.HttpContext.Request.RequestContext);
            controller.ControllerContext = new ControllerContext(
                httpMock.HttpContextBase,
                httpMock.HttpContextBase.Request.RequestContext.RouteData,
                controller);
        }
Exemplo n.º 19
0
            public void SetupServer()
            {
                const string url = "http://localhost:8888/";

                _httpMock = new HttpMock();
                _httpMock.Start(url);
                _httpMock.Add("POST", UrlPath,
                              (request, response) =>
                {
                    PathWasCalled = true;
                    CallCount++;
                    response.StatusCode = (int)HttpStatusCode.OK;
                });
            }
Exemplo n.º 20
0
        public async Task HttpClientAnyTest()
        {
            var client = HttpMock.Mock()
                         .For()
                         .AcceptsAny()
                         .Returns("response")
                         .BuildClient();
            var response = await client.PostAsync(string.Empty, It.IsAny <HttpContent>());

            response.StatusCode.Should().Be(HttpStatusCode.OK);
            var data = await response.GetContentAsStringAsync();

            data.Should().Be("response");
        }
Exemplo n.º 21
0
        public async Task DelegatingHandlerSingleTest()
        {
            var handler = HttpMock.Mock()
                          .For()
                          .Accepts("request")
                          .Returns("response")
                          .BuildDelegatingHandler(() => new FakeDelegatingHandler());
            var response = await handler.InvokeSingle();

            response.StatusCode.Should().Be(HttpStatusCode.OK);
            var data = await response.GetContentAsStringAsync();

            data.Should().Be("responserequest");
        }
Exemplo n.º 22
0
        public void RoutesToPath()
        {
            var port    = new AwaitedPort(new TestPort()).Value();
            var clients = new AspNetCoreClients();
            var result  = 0;

            using (var server =
                       new HttpMock(port,
                                    new KvpOf <IWire>("",
                                                      new FkWire(req =>
            {
                result += 1;
                return(new Response.Of(200, "OK"));
            })
                                                      ),
                                    new KvpOf <IWire>("path",
                                                      new FkWire(req =>
            {
                result += 2;
                return(new Response.Of(200, "OK"));
            })
                                                      ),
                                    new KvpOf <IWire>("another/path",
                                                      new FkWire(req =>
            {
                result += 4;
                return(new Response.Of(200, "OK"));
            })
                                                      )
                                    ).Value()
                   )
            {
                Task.WaitAll(
                    new AspNetCoreWire(clients, new TimeSpan(0, 1, 0)).Response(
                        new Get($"http://localhost:{port}")
                        ),
                    new AspNetCoreWire(clients, new TimeSpan(0, 1, 0)).Response(
                        new Get($"http://localhost:{port}/path")
                        ),
                    new AspNetCoreWire(clients, new TimeSpan(0, 1, 0)).Response(
                        new Get($"http://localhost:{port}/another/path")
                        )
                    );
            }
            Assert.Equal(
                7,
                result
                );
        }
Exemplo n.º 23
0
        public async Task HttpClientFactoryTestWithEmptyName()
        {
            var factory = HttpMock.Mock()
                          .For()
                          .Accepts("request")
                          .Returns("response")
                          .BuildFactory();

            using (var client = factory.CreateClient())
            {
                var response = await client.PostAsync(string.Empty, It.IsAny <HttpContent>());

                response.StatusCode.Should().Be(HttpStatusCode.OK);
                var data = await response.GetContentAsStringAsync();

                data.Should().Be("response");
            }
        }
Exemplo n.º 24
0
        public void HandleUnauthorizedRequest_RedirectsToLogin()
        {
            GlobalizedAuthorizeAttributeProxy attribute = new GlobalizedAuthorizeAttributeProxy();
            AuthorizationContext context = new AuthorizationContext();
            HttpContextBase      http    = new HttpMock().HttpContextBase;

            context.RouteData   = http.Request.RequestContext.RouteData;
            context.HttpContext = http;

            attribute.BaseHandleUnauthorizedRequest(context);

            RedirectToRouteResult actual = context.Result as RedirectToRouteResult;

            Assert.AreEqual(context.RouteData.Values["language"], actual.RouteValues["language"]);
            Assert.AreEqual(context.HttpContext.Request.RawUrl, actual.RouteValues["returnUrl"]);
            Assert.AreEqual(String.Empty, actual.RouteValues["area"]);
            Assert.AreEqual("Auth", actual.RouteValues["controller"]);
            Assert.AreEqual("Login", actual.RouteValues["action"]);
        }
Exemplo n.º 25
0
        public async Task HttpClientTypedModelTest()
        {
            var client = HttpMock.Mock()
                         .For()
                         .Accepts(new FakeInput {
                Id = "1"
            })
                         .Returns(new FakeOutput {
                Id = "1"
            })
                         .BuildClient();
            var response = await client.PostAsync(string.Empty, It.IsAny <HttpContent>());

            response.StatusCode.Should().Be(HttpStatusCode.OK);
            var data = await response.GetContentAsStringAsync();

            var model = JsonConvert.DeserializeObject <FakeOutput>(data);

            model.Id.Should().Be("1");
        }
Exemplo n.º 26
0
        public void HttpTriggerTest()
        {
            _mockLogger.LogInformation("HttpTriggerTest started");

            var    query  = new Dictionary <String, StringValues>();
            var    header = new Dictionary <String, StringValues>();
            string body   = "";

            var req = HttpMock.HttpRequestSetup(header, query, body);

            var HttpTriggerFunc = new AzureFunctions.Api.Functions.HttpTrigger(_configManager);

            var result = HttpTriggerFunc.Run(req, _mockLogger).Result;

            OkObjectResult res = (OkObjectResult)result;

            string outputStr = res.Value.ToString();

            Assert.False(string.IsNullOrEmpty(res.Value.ToString()));
            Assert.Contains("Success", outputStr);
        }
Exemplo n.º 27
0
        public void ConfigureSessionResponseShouldNotThrowException()
        {
            using (var httpResponseMessage = new HttpResponseMessage
            {
                StatusCode = HttpStatusCode.OK
            })
            {
                SandboxClient             docScanSandboxClient;
                Mock <HttpMessageHandler> handlerMock = HttpMock.SetupMockMessageHandler(httpResponseMessage);

                using var httpClient = new HttpClient(handlerMock.Object);
                docScanSandboxClient = SandboxClient.Builder(httpClient)
                                       .WithClientSdkId(_someSdkId)
                                       .WithKeyPair(KeyPair.Get())
                                       .Build();

                docScanSandboxClient.ConfigureSessionResponse(
                    _someSessionId,
                    _sandboxResponseConfig);
            };
        }
Exemplo n.º 28
0
        static void Main()
        {
            HttpMock httpMock = new HttpMock();

            httpMock.Start("http://localhost:8000/");

            httpMock.Add("GET", "/test", (request, response) =>
            {
                Thread.Sleep(3000);
                response.SetBody($"{request}\r\nFoo!");
            });

            httpMock.Add("GET", "/", (request, response) => response.SetBody($"{request}\r\nWoah!"));

            httpMock.Add((request, response) => response.SetBody($"{request}\r\rMini Wild!"));

            httpMock.Add("GET", "/test", (request, response) => response.SetBody($"{request}\r\nBOOO!"));

            Console.WriteLine("Enter to exit...");
            Console.ReadLine();
        }
        public void ReturnsMultipleHeaderValues(string expected)
        {
            var port = new AwaitedPort(new TestPort()).Value();

            using (var server =
                       new HttpMock(port,
                                    new FkWire(req =>
            {
                return
                (new Response.Of(200, "OK",
                                 new ManyOf <IKvp>(
                                     new KvpOf("Allow", "DELETE"),
                                     new KvpOf("Allow", "GET"),
                                     new KvpOf("Allow", "POST"),
                                     new KvpOf("Allow", "PUT")
                                     )
                                 ));
            })
                                    ).Value()
                   )
            {
                Assert.Contains(
                    expected,
                    new Header.Of(
                        new AspNetCoreWire(
                            new AspNetCoreClients(),
                            new TimeSpan(0, 1, 0)
                            ).Response(
                            new Get(
                                new Scheme("http"),
                                new Host("localhost"),
                                new Port(server.Port)
                                )
                            ),
                        "Allow"
                        )
                    );
            }
        }
Exemplo n.º 30
0
        public void TransmitsZipFile()
        {
            var port = new AwaitedPort(new TestPort()).Value();

            using (var server =
                       new HttpMock(port,
                                    new FkWire(req =>
                                               new Response.Of(
                                                   new Status(200),
                                                   new Reason("OK"),
                                                   new Body(
                                                       new ResourceOf(
                                                           "Assets/test.zip",
                                                           this.GetType().Assembly
                                                           ),
                                                       "application/zip"
                                                       )
                                                   )
                                               )
                                    ).Value()
                   )
            {
                Assert.Equal(
                    "this is a test", // content of test.txt in Assets/test.zip
                    new TextOf(
                        new UnzippedFile(
                            new Body.Of(
                                new AspNetCoreWire(
                                    new AspNetCoreClients()
                                    ).Response(
                                    new Get($"http://localhost:{port}/")
                                    )
                                ),
                            "test.txt"
                            )
                        ).AsString()
                    );
            }
        }