public async Task WhenRequestIsGetThenParametersAreAddedToUrl()
        {
            var settings    = TestConfiguration.GetSettings();
            var credentials = TestConfiguration.GetCredentials();

            var query = new StubQuery
            {
                Item1 = "Value"
            };

            using (var testHttpListener = new TestHttpListener(settings.URL, HttpStatusCode.OK, null))
            {
                bool containsItemInUrl = false;
                testHttpListener.MessageReceived += (sender, requestEventArgs) =>
                {
                    var request = requestEventArgs.Request;
                    containsItemInUrl = request.Url.Query.Contains("Item1") &&
                                        request.Url.Query.Contains("Value");
                };

                OauthRequestSender oauthSender = new OauthRequestSender(credentials, settings.URL);
                var apiRequest = new Request <bool>
                {
                    Uri        = "/fake/api",
                    HTTPMethod = HttpMethod.Get,
                    Query      = query
                };
                var user = await oauthSender.SendRequestAsync(apiRequest);

                Assert.IsTrue(containsItemInUrl);
            }
        }
Beispiel #2
0
        public async Task WhenErrorReceivedAnExceptionIsThown()
        {
            using (var httpListener = new TestHttpListener(HttpStatusCode.Forbidden))
                using (var httpRequestSender = new HttpRequestSender())
                {
                    var requestMessage = new HttpRequestMessage(HttpMethod.Get, httpListener.ListeningUrl);
                    var doRequest      = httpRequestSender.SendHttpRequest(requestMessage);

                    await Assert.ThrowsAsync <HttpRequestException>(() => doRequest);
                }
        }
Beispiel #3
0
        public void WhenErrorReceivedAnExceptionIsThown()
        {
            using (var testHttpListener = new TestHttpListener(HttpStatusCode.Forbidden, null))
            {
                using (HttpRequestSender apiRequestSender = new HttpRequestSender())
                {
                    HttpRequestMessage requestMessage = new HttpRequestMessage(HttpMethod.Get, testHttpListener.ListeningUrl);

                    Assert.ThrowsAsync <HttpRequestException>(async() => await apiRequestSender.SendHttpRequest(requestMessage));
                }
            }
        }
Beispiel #4
0
        public async Task WhenSuccessReceivedResponseIsReturned()
        {
            using (var httpListener = new TestHttpListener(HttpStatusCode.OK))
                using (var httpRequestSender = new HttpRequestSender())
                {
                    var requestMessage = new HttpRequestMessage(HttpMethod.Get, httpListener.ListeningUrl);
                    var response       = await httpRequestSender.SendHttpRequest(requestMessage);

                    Assert.Equal(
                        httpRequestSender.UserAgent,
                        response.RequestMessage.Headers.GetValues("User-Agent").First()
                        );
                }
        }
Beispiel #5
0
        public exception_with_logging_from_http_listener_host()
        {
            _fakeLogger = new FakeLogger();

            _httpListener = new TestHttpListener(new Configuration(_fakeLogger));

            try
            {
                _httpListener.WebGet("/");
            }
            catch (WebException e)
            {
                _response = (HttpWebResponse)e.Response;
            }
        }
Beispiel #6
0
        public void Init()
        {
            httpClient = new HttpClient();

            // Start the client server
            ClientServerUrl         = $"http://localhost:{TestHttpListener.GetRandomUnusedPort()}/";
            clientServerTokenSource = new CancellationTokenSource();
            var token = clientServerTokenSource.Token;

            // We need the context of a page to be able to test the JavaScript
            // correctly so create a simple HttpListener which serves some
            // static HTML.
            clientServer = TestHttpListener.SimpleListener(ClientServerUrl, token);

            var chromeOptions = new ChromeOptions();

            chromeOptions.AcceptInsecureCertificates = true;
            // run in headless mode.
            chromeOptions.AddArgument("--headless");
            try
            {
                _driver = new ChromeDriver(chromeOptions);
            }
            catch (WebDriverException)
            {
                Assert.Inconclusive("Could not create a ChromeDriver, check " +
                                    "that the Chromium driver is installed");
            }

            // Navigate to the client site.
            _driver.Navigate().GoToUrl(ClientServerUrl);

            _mockjsonBuilderElement = new Mock <IJsonBuilderElement>();

            _elementPropertyMetaDatas = new List <IElementPropertyMetaData>()
            {
                new ElementPropertyMetaData(_mockjsonBuilderElement.Object, "property", typeof(string), true)
            };

            _mockjsonBuilderElement.Setup(x => x.Properties).Returns(_elementPropertyMetaDatas);
            _loggerFactory = new LoggerFactory();

            _elementDataMock = new Mock <IElementData>();
            _elementDataMock.Setup(ed => ed.AsDictionary()).Returns(new Dictionary <string, object>()
            {
                { "property", "thisIsAValue" }
            });
        }
        public void WhenSentRequestAndUnauthorizedThenExceptionIsThrown()
        {
            var settings    = TestConfiguration.GetSettings();
            var credentials = new Credentials(
                settings.CONSUMER_KEY,
                settings.CONSUMER_SECRET,
                settings.TOKEN,
                settings.TOKEN_SECRET);

            using (var testHttpListener = new TestHttpListener(settings.URL, HttpStatusCode.Forbidden, null))
            {
                OauthRequestSender api = new OauthRequestSender(credentials, settings.URL);
                var apiRequest         = new Request <bool>
                {
                    Uri        = "/fake/api",
                    HTTPMethod = HttpMethod.Get
                };
                Assert.ThrowsAsync <HttpRequestException>(async() => await api.SendRequestAsync(apiRequest));
            }
        }
        public async Task WhenRequestSentThenResponseIsDeserializedToObject()
        {
            var settings    = TestConfiguration.GetSettings();
            var credentials = TestConfiguration.GetCredentials();

            using (var testHttpListener = new TestHttpListener(settings.URL, HttpStatusCode.OK, "HTTPResponses/User.txt"))
            {
                OauthRequestSender oauthSender = new OauthRequestSender(credentials, settings.URL);
                var apiRequest = new Request <User>
                {
                    Uri        = "/fake/api",
                    HTTPMethod = HttpMethod.Get
                };
                var user = await oauthSender.SendRequestAsync(apiRequest);

                Assert.IsNotNull(user);
                Assert.IsNotNull(user.TokenKey);
                Assert.IsNotNull(user.TokenSecret);
                Assert.IsNotNull(user.UserId);
            }
        }
        public async Task WhenSendRequestThenAuthHeaderIsAdded()
        {
            var settings    = TestConfiguration.GetSettings();
            var credentials = TestConfiguration.GetCredentials();

            using (var testHttpListener = new TestHttpListener(settings.URL, HttpStatusCode.OK, "HTTPResponses/User.txt"))
            {
                bool containsAuthHeader = false;
                testHttpListener.MessageReceived += (sender, requestEventArgs) =>
                {
                    containsAuthHeader = requestEventArgs.Request.Headers["Authorization"] != null;
                };

                OauthRequestSender oauthSender = new OauthRequestSender(credentials, settings.URL);
                var apiRequest = new Request <User>
                {
                    Uri        = "/fake/api",
                    HTTPMethod = HttpMethod.Get
                };
                var user = await oauthSender.SendRequestAsync(apiRequest);

                Assert.IsTrue(containsAuthHeader);
            }
        }
 public serving_files()
 {
     _httpListener = new TestHttpListener(new Configuration());
 }