Exemple #1
0
        public async Task TestRequestWithPayload()
        {
            var expectedPayload = "{\"hello\":\"Kitty\",\"world\":\"Collides\"}";
            var payload         = new DummyPayload
            {
                Hello = "Kitty",
                World = "Collides",
            };

            var roundtripper = new MockRoundtripper(async(request) =>
            {
                var content     = request.Content;
                var contentType = content.Headers.GetValues("Content-Type").FirstOrDefault();
                Assert.AreEqual(contentType, "application/json; charset=utf-8");

                var task           = content.ReadAsStringAsync();
                var encodedPayload = await content.ReadAsStringAsync();
                Assert.AreEqual(expectedPayload, encodedPayload);
            });

            var requester = BuildRequester(roundtripper);
            await requester.Request <object, DummyPayload>(Endpoint.Api, "POST", "/test", payload);

            Assert.That(roundtripper.RoundtripCount, Is.EqualTo(1));
        }
Exemple #2
0
        public async Task TestRequest()
        {
            var expectedAuthHeader = DummyCredentials.SecretKey.EncodeForAuthorizationHeader();
            var roundtripper       = new MockRoundtripper((req) =>
            {
                var authHeader = req.Headers.GetValues("Authorization").FirstOrDefault();
                Assert.That(authHeader, Is.EqualTo(expectedAuthHeader));

                var libAsm = typeof(Requester).Assembly;
                var clrAsm = typeof(object).Assembly;

                var libVersion = libAsm.GetName().Version.ToString();
                var clrVersion = clrAsm.GetName().Version.ToString();

                var userAgents = req.Headers.GetValues("User-Agent").ToList();
                Assert.That(userAgents, Contains.Item($"Omise.Net/{libVersion}"));
                Assert.That(userAgents, Contains.Item($".Net/{clrVersion}"));

                var apiVersion = req.Headers.GetValues("Omise-Version").FirstOrDefault();
                Assert.That(apiVersion, Is.EqualTo("2000-02-01"));
            });

            var requester = new Requester(
                DummyCredentials,
                Environments.Production,
                roundtripper,
                "2000-02-01"
                );
            await requester.Request <object>(Endpoint.Api, "GET", "/test");

            Assert.That(roundtripper.RoundtripCount, Is.EqualTo(1));
        }
Exemple #3
0
        public async Task TestRequestWithStagingEnvironment()
        {
            var roundtripper = new MockRoundtripper((req) =>
            {
                Assert.That(req.RequestUri.Host, Is.EqualTo("api-staging.omise.co"));
            });

            var requester = new Requester(
                DummyCredentials,
                Environments.Staging,
                roundtripper,
                "2000-02-01"
                );
            await requester.Request <object>(Endpoint.Api, "GET", "/test");

            Assert.That(roundtripper.RoundtripCount, Is.EqualTo(1));
        }
Exemple #4
0
        public async Task TestRequestWithResult()
        {
            var roundtripper = new MockRoundtripper();

            roundtripper.ResponseContent     = "{\"id\":\"zxcv\"}";
            roundtripper.ResponseContentType = "application/json";

            var requester = BuildRequester(roundtripper);
            var result    = await requester.Request <DummyModel>(Endpoint.Api, "GET", "/test");

            Assert.IsNotNull(result);
            Assert.AreEqual("zxcv", result.Id);
            Assert.AreEqual(requester, result.Requester);

            Assert.That(result, Is.Not.Null);
            Assert.That(result.Id, Is.EqualTo("zxcv"));
            Assert.That(result.Requester, Is.EqualTo(requester));
        }
Exemple #5
0
        public void TestRequestWithErrorResponse()
        {
            var roundtripper = new MockRoundtripper(responseInspector: (response) => {
                response.StatusCode = HttpStatusCode.BadRequest;
                response.Content    = new StringContent("{\"code\":\"test_error\"}");
            });
            var requester = BuildRequester(roundtripper);

            var task = requester.Request <object>(Endpoint.Api, "GET", "/test");

            Assert.That(task.Wait, Throws.InstanceOf <AggregateException>());
            Assert.That(roundtripper.RoundtripCount, Is.EqualTo(1));
            Assert.That(task.Exception, Is.Not.Null);

            var exception = task.Exception.Flatten().InnerException;

            Assert.That(exception, Is.InstanceOf <OmiseError>());
            Assert.That(exception.ToString(), Contains.Substring("test_error"));
        }
Exemple #6
0
        public async Task TestRequestWithPayload()
        {
            var expectedPayload = "hello=Kitty&world=Collides";
            var payload         = new DummyPayload {
                Hello = "Kitty",
                World = "Collides",
            };

            var roundtripper = new MockRoundtripper(async(request) => {
                var content     = request.Content;
                var contentType = content.Headers.GetValues("Content-Type").FirstOrDefault();
                Assert.That(contentType, Is.EqualTo("application/x-www-form-urlencoded"));

                var encodedPayload = await content.ReadAsStringAsync();
                Assert.That(encodedPayload, Is.EqualTo(expectedPayload));
            });

            var requester = BuildRequester(roundtripper);
            await requester.Request <object, DummyPayload>(Endpoint.Api, "POST", "/test", payload);

            Assert.That(roundtripper.RoundtripCount, Is.EqualTo(1));
        }