public async Task <Acknowledgment> EditAsync(object value)
        {
            using (HttpClient client = HttpClientCreator.Create())
            {
                HttpResponseMessage response = await client.PutAsync(Path, Serializer.SerializeItemToContent(value));

                return(await EnsureSuccessAsync(response));
            }
        }
Esempio n. 2
0
        public async Task <Acknowledgment> DeleteAsync()
        {
            using (HttpClient client = HttpClientCreator.Create())
            {
                HttpResponseMessage response = await client.DeleteAsync(Path);

                return(await EnsureSuccessAsync(response));
            }
        }
        public async Task <object> GetAsync()
        {
            using (HttpClient client = HttpClientCreator.Create())
            {
                HttpResponseMessage response = await client.GetAsync(Path);

                return(await Serializer.DeserializeAsync <object>(response));
            }
        }
Esempio n. 4
0
        public async Task <RestItemData> GetDataAsync(IEnumerable <string> fieldNames)
        {
            using (HttpClient client = HttpClientCreator.Create())
            {
                var fullUri = UriUtilities.AppendQueryString(Path, GetFieldNamesQueryString(fieldNames));
                HttpResponseMessage response = await client.GetAsync(fullUri);

                return(await Serializer.DeserializeAsync <RestItemData>(response));
            }
        }
        public void When_Credentials_Are_Null_Then_Create_Throws_ArgumentNullException()
        {
            // set up
            var client = new HttpClientCreator(new ProxyConfiguration());
            IVendorCredentials credentials = null;

            // execute
            var ex = Assert.Throws <ArgumentNullException>(() => client.Create(credentials));

            // verify
            Assert.Equal("credentials", ex.ParamName);
        }
        public async Task <Acknowledgment> DeleteAllAsync(IRestCollectionQuery query)
        {
            using (HttpClient client = HttpClientCreator.Create())
            {
                var    queryStringBuilder = new CollectionQueryStringBuilder(new CollectionQueryStringConfiguration());
                string fullUrl            = UriUtilities.AppendQueryString(Path, queryStringBuilder.BuildString(query));

                HttpResponseMessage response = await client.DeleteAsync(fullUrl);

                Acknowledgment acknowledgment = await EnsureSuccessAsync(response);

                return(acknowledgment);
            }
        }
        public async Task <RestCollectionData> QueryDataAsync(IRestCollectionQuery query)
        {
            using (HttpClient client = HttpClientCreator.Create())
            {
                var    queryStringBuilder = new CollectionQueryStringBuilder(new CollectionQueryStringConfiguration());
                string fullUrl            = UriUtilities.AppendQueryString(Path, queryStringBuilder.BuildString(query));

                HttpResponseMessage response = await client.GetAsync(fullUrl);

                var queriedData = await Serializer.DeserializeAsync <IEnumerable <RestItemData> >(response);

                return(new RestCollectionData(queriedData, null)); // TODO: fill page details
            }
        }
        public void Create_Returns_Client_With_DefaultRequestHeader_Accept_Json()
        {
            // setup
            var credentials = new VendorCredentials
            {
                Id           = Guid.NewGuid(),
                SharedSecret = Guid.NewGuid()
            };

            var subject = new HttpClientCreator(new ProxyConfiguration());

            // execute
            var client = subject.Create(credentials);

            // assert
            Assert.True(client.DefaultRequestHeaders.Accept.Contains(new MediaTypeWithQualityHeaderValue("application/json")), "Expected application/json header but was not found");
        }
Esempio n. 9
0
        public static async Task Setup(TestContext testContext)
        {
            var clientForGetToken = HttpClientCreator.CreateWebApiHttpClientForGetAccessToken();

            using (var requestMessage = new HttpRequestMessageCreator().PostRequestMessageForGetToken("/TestApi/token"))
            {
                using (var response = await clientForGetToken.SendAsync(requestMessage).ConfigureAwait(false))
                {
                    var result = await response.Content.ReadAsAsync <GetAccessTokenResponceDto>().ConfigureAwait(false);

                    var tokenType   = result.token_type;
                    var accessToken = result.access_token;
                    _client = HttpClientCreator.CreateWebApiHttpClientWithToken(tokenType, accessToken);
                }
            }
            clientForGetToken.Dispose();
        }
        public void Create_Returns_Client_With_DefaultRequestHeader_VendorId()
        {
            // setup
            var credentials = new VendorCredentials
            {
                Id           = Guid.NewGuid(),
                SharedSecret = Guid.NewGuid()
            };

            var subject = new HttpClientCreator(new ProxyConfiguration());

            // execute
            var client = subject.Create(credentials);

            // assert
            Assert.True(client.DefaultRequestHeaders.Contains("X-InsuranceHub-VendorId"));
            Assert.Equal(credentials.Id.ToString("D"), client.DefaultRequestHeaders.GetValues(HttpClientCreator.VendorIdHeaderKey).First());
        }
        public async Task <CreatedItemAcknowledgment> AddAsync(RestItemData itemData)
        {
            using (HttpClient client = HttpClientCreator.Create())
            {
                HttpResponseMessage response = await client.PostAsync(Path, Serializer.SerializeItemToContent(itemData));

                Acknowledgment acknowledgment = await EnsureSuccessAsync(response);

                var created = acknowledgment as CreatedItemAcknowledgment;

                if (created == null)
                {
                    throw new InvalidOperationException("REST API did not return status code 201 after creating an item.");
                }

                return(created);
            }
        }
        public void When_Credentials_Are_Same_Create_Returns_SameClient()
        {
            // setup
            var credentials = new VendorCredentials
            {
                Id = Guid.NewGuid(),

                SharedSecret = Guid.NewGuid()
            };

            var subject = new HttpClientCreator(new ProxyConfiguration());

            // execute
            var client1 = subject.Create(credentials);
            var client2 = subject.Create(credentials);

            // assert
            Assert.Same(client1, client2);
        }