예제 #1
0
        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");
        }
예제 #2
0
        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");
        }
예제 #3
0
        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");
        }
예제 #4
0
        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");
        }
예제 #5
0
        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>());
        }
예제 #6
0
        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."));
        }
예제 #7
0
        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");
        }
예제 #8
0
        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");
        }
예제 #9
0
 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");
 }
예제 #10
0
 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");
 }
예제 #11
0
 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");
 }
예제 #12
0
 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");
 }
예제 #13
0
        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>());
        }
예제 #14
0
 public void EnsureGzipRequestBodyFalseBYDefault()
 {
     var command = new MockMusicClientCommand();
     Assert.IsFalse(command.GzipRequestBody, "Expected GzipRequestBody false by default");
 }
예제 #15
0
        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);
        }