public void Given_Validation_Error_With_CancellationToken_When_PostAsync_Invoked_Then_It_Should_Throw_Exception(HttpStatusCode statusCode) { var requestUri = "http://localhost"; var payload = "{ \"hello\": \"world\" }"; var exception = new SchemaValidationException(); var validator = new Mock <ISchemaValidator>(); validator.Setup(p => p.ValidateAsync(It.IsAny <string>(), It.IsAny <string>())).ThrowsAsync(exception); var path = "default.json"; var func = default(Func <Task>); using (var handler = this._fixture.CreateFakeHttpMessageHandler(statusCode, payload)) using (var httpClient = this._fixture.CreateHttpClient(handler)) using (var content = this._fixture.CreateHttpContent()) using (var source = this._fixture.CreateCancellationTokenSource()) { func = async() => await HttpClientExtensions.PostAsync(httpClient, requestUri, content, validator.Object, path, source.Token).ConfigureAwait(false); func.Should().Throw <SchemaValidationException>(); func = async() => await HttpClientExtensions.PostAsync(httpClient, new Uri(requestUri), content, validator.Object, path, source.Token).ConfigureAwait(false); func.Should().Throw <SchemaValidationException>(); } }
public Task <HttpResponseMessage> PostAsync <TRequest>(Uri requestUri, TRequest value, string mediaType = null) { if (value is HttpContent) { return(base.PostAsync(requestUri, value as HttpContent)); } else { return(HttpClientExtensions.PostAsync(this, requestUri, value, Formatter, mediaType)); } }
public Task <TResponse> PostAsync <TRequest, TResponse>(Uri requestUri, TRequest value, string mediaType = null) { if (value is HttpContent) { var task = base.PostAsync(requestUri, value as HttpContent); return(resultContent.GetResultContentAsync <TResponse>(task, this.Formatters, this.ErrorType, this.ErrorHandle)); } else { var task = HttpClientExtensions.PostAsync(this, requestUri, value, Formatter, mediaType); return(resultContent.GetResultContentAsync <TResponse>(task, this.Formatters, this.ErrorType, this.ErrorHandle)); } }
public void Given_Null_Parameters_When_PostAsync_Invoked_Then_It_Should_Throw_Exception() { var requestUri = "http://localhost"; var validator = new Mock <ISchemaValidator>(); var func = default(Func <Task>); using (var httpClient = this._fixture.CreateHttpClient()) using (var content = this._fixture.CreateHttpContent()) { func = async() => await HttpClientExtensions.PostAsync(null, (string)null, null, null, null).ConfigureAwait(false); func.Should().Throw <ArgumentNullException>(); func = async() => await HttpClientExtensions.PostAsync(httpClient, (string)null, null, null, null).ConfigureAwait(false); func.Should().Throw <ArgumentNullException>(); func = async() => await HttpClientExtensions.PostAsync(httpClient, requestUri, null, null, null).ConfigureAwait(false); func.Should().Throw <ArgumentNullException>(); func = async() => await HttpClientExtensions.PostAsync(httpClient, requestUri, content, null, null).ConfigureAwait(false); func.Should().Throw <ArgumentNullException>(); func = async() => await HttpClientExtensions.PostAsync(httpClient, requestUri, content, validator.Object, null).ConfigureAwait(false); func.Should().Throw <ArgumentNullException>(); func = async() => await HttpClientExtensions.PostAsync(null, (Uri)null, null, null, null).ConfigureAwait(false); func.Should().Throw <ArgumentNullException>(); func = async() => await HttpClientExtensions.PostAsync(httpClient, (Uri)null, null, null, null).ConfigureAwait(false); func.Should().Throw <ArgumentNullException>(); func = async() => await HttpClientExtensions.PostAsync(httpClient, requestUri, null, null, null).ConfigureAwait(false); func.Should().Throw <ArgumentNullException>(); func = async() => await HttpClientExtensions.PostAsync(httpClient, requestUri, content, null, null).ConfigureAwait(false); func.Should().Throw <ArgumentNullException>(); func = async() => await HttpClientExtensions.PostAsync(httpClient, requestUri, content, validator.Object, null).ConfigureAwait(false); func.Should().Throw <ArgumentNullException>(); } }
public Task <TResponse> PostAsync <TRequest, TResponse>(string requestUri, TRequest value, string mediaType = null) { if (value is HttpContent) { var task = base.PostAsync(requestUri, value as HttpContent); return(resultContent.GetResultContentAsync <TResponse>(task, this.Formatters, this.ErrorType, this.ErrorHandle)); } else { var task = HttpClientExtensions.PostAsync(this, requestUri, value, Formatter, mediaType); return(resultContent.GetResultContentAsync <TResponse>(task, this.Formatters, this.ErrorType, this.ErrorHandle)); //return this.PostAsync<string, string>("api/WebErp.Orders/Order/GetOrdersByExpression?count={count}".Replace("{count}", System.Convert.ToString(count)), predicate);//?.Result?.GetResultContent<Order[]>(this.MediaTypeFormatters); } }
public void Given_Error_Response_When_PostAsync_Invoked_Then_It_Should_Throw_Exception(HttpStatusCode statusCode) { var requestUri = "http://localhost"; var validator = new Mock <ISchemaValidator>(); var path = "default.json"; var func = default(Func <Task>); using (var handler = this._fixture.CreateFakeHttpMessageHandler(statusCode)) using (var httpClient = this._fixture.CreateHttpClient(handler)) using (var content = this._fixture.CreateHttpContent()) { func = async() => await HttpClientExtensions.PostAsync(httpClient, requestUri, content, validator.Object, path).ConfigureAwait(false); func.Should().Throw <HttpRequestException>(); func = async() => await HttpClientExtensions.PostAsync(httpClient, new Uri(requestUri), content, validator.Object, path).ConfigureAwait(false); func.Should().Throw <HttpRequestException>(); } }
public async Task Given_Validation_Result_When_PostAsync_Invoked_Then_It_Should_Return_Result(HttpStatusCode statusCode) { var requestUri = "http://localhost"; var payload = "{ \"hello\": \"world\" }"; var validator = new Mock <ISchemaValidator>(); validator.Setup(p => p.ValidateAsync(It.IsAny <string>(), It.IsAny <string>())).ReturnsAsync(true); var path = "default.json"; using (var response = this._fixture.CreateHttpResponseMessage(statusCode, payload)) using (var handler = this._fixture.CreateFakeHttpMessageHandler(response)) using (var httpClient = this._fixture.CreateHttpClient(handler)) using (var content = this._fixture.CreateHttpContent()) using (var result1 = await HttpClientExtensions.PostAsync(httpClient, requestUri, content, validator.Object, path).ConfigureAwait(false)) using (var result2 = await HttpClientExtensions.PostAsync(httpClient, new Uri(requestUri), content, validator.Object, path).ConfigureAwait(false)) { result1.Should().Be(response); result2.Should().Be(response); } }