public void ValidateToErrorResponseWithMissingMixRadioHeader() { var command = new MockMusicClientCommand(); Response r = new Response(HttpStatusCode.OK, new Guid(), false); Response response = command.ErrorResponseHandler(r); Assert.IsNotNull(response, "Expected a new Response"); Assert.IsNull(response.ErrorResponseBody); Assert.IsNotNull(response.Error, "Expected an exception"); Assert.IsInstanceOf <NetworkLimitedException>(response.Error, "Expected a NetworkLimitedException"); Assert.IsFalse(response.Succeeded, "Expected failure"); }
public void ValidateToListErrorResponseOfWithMixRadioHeader() { var command = new MockMusicClientCommand(); Response r = new Response(HttpStatusCode.OK, new Guid()); ListResponse <object> response = command.ListItemErrorResponseHandler <object>(r); Assert.IsNotNull(response, "Expected a new Response"); Assert.IsNull(response.ErrorResponseBody); Assert.IsNotNull(response.Error, "Expected an exception"); Assert.IsInstanceOf <ApiCallFailedException>(response.Error, "Expected a ApiCallFailedException"); Assert.IsFalse(response.Succeeded, "Expected failure"); Assert.IsNull(response.Result, "Expected no result"); }
public void ValidateToErrorResponseWithMixRadioException() { var command = new MockMusicClientCommand(); Response r = new Response(null, new MixRadioException(null), "ThisIsTheResponseBody", new Guid()); Response response = command.ErrorResponseHandler(r); Assert.IsNotNull(response, "Expected a new Response"); Assert.IsNull(response.StatusCode, "Expected no status code"); Assert.AreEqual("ThisIsTheResponseBody", response.ErrorResponseBody, "Expected the same error response body"); Assert.IsNotNull(response.Error, "Expected an exception"); Assert.AreSame(r.Error, response.Error, "Expected the same exception"); Assert.IsFalse(response.Succeeded, "Expected failure"); }
public void ValidateToErrorResponseWithGenericException() { var command = new MockMusicClientCommand(); Response r = new Response(null, new Exception(), "ThisIsTheResponseBody", new Guid()); Response response = command.ErrorResponseHandler(r); Assert.IsNotNull(response, "Expected a new Response"); Assert.IsNull(response.StatusCode, "Expected no status code"); Assert.AreEqual(response.ErrorResponseBody, "ThisIsTheResponseBody"); Assert.IsNotNull(response.Error, "Expected an exception"); Assert.IsInstanceOf <MixRadioException>(response.Error, "Expected a MixRadioException"); Assert.IsFalse(response.Succeeded, "Expected failure"); }
public void NetworkUnavailableIsPassedThrough() { var command = new MockMusicClientCommand(); var unavailableResponse = new Response<JObject>( HttpStatusCode.NotFound, new NetworkUnavailableException(), string.Empty, Guid.NewGuid()); var response = command.ItemResponseHandler( unavailableResponse, (item, settings) => item); Assert.That(!response.Succeeded); Assert.That(response.Error, Is.InstanceOf<NetworkUnavailableException>()); }
public void NetworkLimitedIsPassedThroughForLists() { var command = new MockMusicClientCommand(); var unavailableResponse = new Response<JObject>( HttpStatusCode.NotFound, new NetworkLimitedException("This is a message."), string.Empty, Guid.NewGuid()); var response = command.ListItemResponseHandler( unavailableResponse, "items", (item, settings) => item); Assert.That(!response.Succeeded); Assert.That(response.Error, Is.InstanceOf<NetworkLimitedException>()); Assert.That(response.Error.Message, Is.EqualTo("This is a message.")); }
public async Task AttemptToGetStringFromRealUri() { IApiRequestHandler handler = new ApiRequestHandler(new ApiUriBuilder()); var command = new MockMusicClientCommand() { BaseApiUri = "http://mixrad.io/gb/en/badurl" }; var result = await handler.SendRequestAsync( command, new MockMusicClientSettings("test", "us", null), null, command.HandleRawData, null, null); Assert.IsNotNull(result, "Expected a result"); Assert.IsNull(result.Error, "Expected no error"); Assert.IsNotNull(result.Result, "Expected a result object"); Assert.IsNotNull(result.StatusCode, "Expected a status code - this test can fail when you run tests with no internet connection!"); Assert.AreEqual(HttpStatusCode.NotFound, result.StatusCode.Value, "Expected 404"); }
public async Task AttemptToGetStringFromRealUri() { IApiRequestHandler handler = new ApiRequestHandler(new ApiUriBuilder()); var command = new MockMusicClientCommand() { BaseApiUri = "http://mixrad.io/gb/en/badurl" }; var result = await handler.SendRequestAsync( command, new MockMusicClientSettings("test", "us", null), null, command.HandleRawData, null, null); Assert.IsNotNull(result, "Expected a result"); Assert.IsNull(result.Error, "Expected no error"); Assert.IsNotNull(result.Result, "Expected a result object"); Assert.IsNotNull(result.StatusCode, "Expected a status code - this test can fail when you run tests with no internet connection!"); Assert.AreEqual(HttpStatusCode.NotFound, result.StatusCode.Value, "Expected 404"); }
public void ValidateToListErrorResponseOfWithMissingMixRadioHeader() { var command = new MockMusicClientCommand(); Response r = new Response(HttpStatusCode.OK, new Guid(), false); ListResponse<object> response = command.ListItemErrorResponseHandler<object>(r); Assert.IsNotNull(response, "Expected a new Response"); Assert.IsNull(response.ErrorResponseBody); Assert.IsNotNull(response.Error, "Expected an exception"); Assert.IsInstanceOf<NetworkLimitedException>(response.Error, "Expected a NetworkLimitedException"); Assert.IsFalse(response.Succeeded, "Expected failure"); Assert.IsNull(response.Result, "Expected no result"); }
public void ValidateToErrorResponseWithMixRadioHeader() { var command = new MockMusicClientCommand(); Response r = new Response(HttpStatusCode.OK, new Guid()); Response response = command.ErrorResponseHandler(r); Assert.IsNotNull(response, "Expected a new Response"); Assert.IsNull(response.ErrorResponseBody); Assert.IsNotNull(response.Error, "Expected an exception"); Assert.IsInstanceOf<ApiCallFailedException>(response.Error, "Expected a ApiCallFailedException"); Assert.IsFalse(response.Succeeded, "Expected failure"); }
public void ValidateToListErrorResponseOfWithMixRadioException() { var command = new MockMusicClientCommand(); Response r = new Response(null, new MixRadioException(null), "ThisIsTheResponseBody", new Guid()); ListResponse<object> response = command.ListItemErrorResponseHandler<object>(r); Assert.IsNotNull(response, "Expected a new Response"); Assert.IsNull(response.StatusCode, "Expected no status code"); Assert.AreEqual("ThisIsTheResponseBody", response.ErrorResponseBody, "Expected the same error response body"); Assert.IsNotNull(response.Error, "Expected an exception"); Assert.AreSame(r.Error, response.Error, "Expected the same exception"); Assert.IsFalse(response.Succeeded, "Expected failure"); Assert.IsNull(response.Result, "Expected no result"); }
public void ValidateToErrorResponseOfWithGenericException() { var command = new MockMusicClientCommand(); Response r = new Response(null, new Exception(), "ThisIsTheResponseBody", new Guid()); Response<object> response = command.ItemErrorResponseHandler<object>(r); Assert.IsNotNull(response, "Expected a new Response"); Assert.IsNull(response.StatusCode, "Expected no status code"); Assert.AreEqual(response.ErrorResponseBody, "ThisIsTheResponseBody"); Assert.IsNotNull(response.Error, "Expected an exception"); Assert.IsInstanceOf<MixRadioException>(response.Error, "Expected a MixRadioException"); Assert.IsFalse(response.Succeeded, "Expected failure"); Assert.IsNull(response.Result, "Expected no result"); }
public void WasNetworkAvailableDoesNotThrowExceptionWhenErrorIsEmpty() { var command = new MockMusicClientCommand(); var mix = JToken.FromObject(new Mix()); var availableResponse = new Response<JObject>( HttpStatusCode.OK, "application/vnd.nokia.ent", (JObject)mix, Guid.NewGuid()); var response = command.ListItemResponseHandler( availableResponse, "items", (item, settings) => item); Assert.That(response.Succeeded); Assert.That(response.Error, Is.Not.InstanceOf<NetworkUnavailableException>()); }
public void EnsureGzipRequestBodyFalseBYDefault() { var command = new MockMusicClientCommand(); Assert.IsFalse(command.GzipRequestBody, "Expected GzipRequestBody false by default"); }
public async System.Threading.Tasks.Task UnauthorizedResponseDoesNothingInDefaultImplementation() { var command = new MockMusicClientCommand { OAuth2 = new OAuth2(new FakeAuthHeaderProvider()), RequestHandler = new MockApiRequestHandler(FakeResponse.RawUnauthorized()), }; await command.ExecuteAsync(null); }