public async Task PostAsync_ShouldReturnErrorObject_WhenRequestIsNotSuccessful() { // Arrange var mockedResponseHandler = new MockedDelegatingHandler(new HttpResponseMessage { Content = new StringContent(TestErrorJson, Encoding.UTF8, "application/json"), StatusCode = HttpStatusCode.BadRequest, }); var restClient = new RestClient("http://test.com", new HttpClient(mockedResponseHandler)); // Act var response = await restClient.PostAsync <object, ErrorDto>(relativeUrl : "/test", body : new { Test = "Test" }); // Assert Assert.IsType <RestResponse <object, ErrorDto> >(response); Assert.Null(response.SuccessValue); Assert.IsType <ErrorDto>(response.ErrorValue); Assert.Equal(HttpStatusCode.BadRequest, response.HttpStatusCode); Assert.False(response.IsSuccessResult); Assert.Equal(2, response.ErrorValue.ErrorCode); Assert.Equal(GenericErrorDescription, response.ErrorValue.ErrorDescription); }
public async Task PostAsync_ShouldReturnResourceObject_WhenRequestIsSuccessful() { // Arrange var mockedResponseHandler = new MockedDelegatingHandler(new HttpResponseMessage { Content = new StringContent(TestResourceJson, Encoding.UTF8, "application/json"), StatusCode = HttpStatusCode.Created, }); var restClient = new RestClient("http://test.com", new HttpClient(mockedResponseHandler)); // Act var response = await restClient.PostAsync <TestResourceDto, ErrorDto>(relativeUrl : "/test", body : new { Test = "Test" }); // Assert Assert.IsType <RestResponse <TestResourceDto, ErrorDto> >(response); Assert.IsType <TestResourceDto>(response.SuccessValue); Assert.Null(response.ErrorValue); Assert.Equal(HttpStatusCode.Created, response.HttpStatusCode); Assert.True(response.IsSuccessResult); Assert.Equal("test", response.SuccessValue.Id); Assert.Equal(5, response.SuccessValue.Code); }