public void GetResponse_must_return_StatusCode_404_when_response_content_produce_error_404_and_response_StatusCode_equals_200() { var content = "{" + "\"responseCode\": \"404\"" + "}"; var mock = new Mock<HttpWebResponseWrapper>(); mock.Setup(m => m.StatusCode).Returns(HttpStatusCode.OK); mock.Setup(m => m.Headers).Returns(new WebHeaderCollection()); mock.Setup(m => m.GetResponseStream()).Returns(new MemoryStream(Encoding.Default.GetBytes(content))); APIClient target = new APIClient(new AuthState { AccessToken = "token", ApiUrl = "https://www.mystore.com/api/v1" }); APIResponse apiResponse = target.GetResponse(mock.Object); Assert.AreEqual(404, apiResponse.StatusCode); }
public void GetResponse_must_return_StatusCode_200_when_response_is_valid() { var mock = new Mock<HttpWebResponseWrapper>(); mock.Setup(m => m.StatusCode).Returns(HttpStatusCode.OK); mock.Setup(m => m.Headers).Returns(new WebHeaderCollection()); mock.Setup(m => m.GetResponseStream()).Returns(new MemoryStream()); APIClient target = new APIClient(new AuthState { AccessToken = "token", ApiUrl = "https://www.mystore.com/api/v1" }); APIResponse apiResponse = target.GetResponse(mock.Object); Assert.AreEqual(200, apiResponse.StatusCode); }
public void GetResponse_must_return_hasMore_equals_true_when_response_headers_have_x_hasMore_with_true_value() { WebHeaderCollection mockHeader = new WebHeaderCollection(); mockHeader.Add("x-hasmore", "true"); var mock = new Mock<HttpWebResponseWrapper>(); mock.Setup(m => m.StatusCode).Returns(HttpStatusCode.OK); mock.Setup(m => m.Headers).Returns(mockHeader); mock.Setup(m => m.GetResponseStream()).Returns(new MemoryStream()); APIClient target = new APIClient(new AuthState { AccessToken = "token", ApiUrl = "https://www.mystore.com/api/v1" }); APIResponse apiResponse = target.GetResponse(mock.Object); Assert.AreEqual(true, apiResponse.HasMore); }
public void GetResponse_must_return_error_object_with_404_error_when_response_produce_error_404() { var content = "{" + "\"responseCode\": \"404\"," + "\"message\": \"notfound\"," + "\"errors\": " + "[" + "{" + "\"message\": \"The requested resource was not found\"," + "\"code\": \"not_found\"," + "\"moreInfo\": \"http://wiki\"" + "}" + "]" + "}"; var mock = new Mock<HttpWebResponseWrapper>(); mock.Setup(m => m.StatusCode).Returns(HttpStatusCode.NotFound); mock.Setup(m => m.Headers).Returns(new WebHeaderCollection()); mock.Setup(m => m.GetResponseStream()).Returns(new MemoryStream(Encoding.Default.GetBytes(content))); APIClient target = new APIClient(new AuthState { AccessToken = "token", ApiUrl = "https://www.mystore.com/api/v1" }); APIResponse apiResponse = target.GetResponse(mock.Object); Assert.AreEqual(404, apiResponse.StatusCode); Assert.AreEqual("notfound", apiResponse.Error.Message); Assert.AreEqual("The requested resource was not found", apiResponse.Error.ErrorDetails.First().Message); Assert.AreEqual("not_found", apiResponse.Error.ErrorDetails.First().Code); Assert.AreEqual("http://wiki", apiResponse.Error.ErrorDetails.First().MoreInfo); }
public void GetResponse_must_return_Content_when_response_is_valid() { var content = "{" + "\"count\": \"1000\" " + "}"; var mock = new Mock<HttpWebResponseWrapper>(); mock.Setup(m => m.StatusCode).Returns(HttpStatusCode.OK); mock.Setup(m => m.Headers).Returns(new WebHeaderCollection()); mock.Setup(m => m.GetResponseStream()).Returns(new MemoryStream(Encoding.Default.GetBytes(content))); APIClient target = new APIClient(new AuthState { AccessToken = "token", ApiUrl = "https://www.mystore.com/api/v1" }); APIResponse apiResponse = target.GetResponse(mock.Object); Assert.AreEqual("1000", apiResponse.Content.count.Value); }
public void GetResponse_must_return_apilimit_equals_100_and_apilimitRemaining_equals_10_when_response_headers_have_x_apilimit_remaining_with_value_100_slash_10() { WebHeaderCollection mockHeader = new WebHeaderCollection(); mockHeader.Add("x-apilimit-remaining", "100/10"); var mock = new Mock<HttpWebResponseWrapper>(); mock.Setup(m => m.StatusCode).Returns(HttpStatusCode.OK); mock.Setup(m => m.Headers).Returns(mockHeader); mock.Setup(m => m.GetResponseStream()).Returns(new MemoryStream()); APIClient target = new APIClient(new AuthState { AccessToken = "token", ApiUrl = "https://www.mystore.com/api/v1" }); APIResponse apiResponse = target.GetResponse(mock.Object); Assert.AreEqual(100, apiResponse.ApiLimit); Assert.AreEqual(10, apiResponse.ApiLimitRemaining); }