public void EnsureGetProductReturnsErrorForFailedCall()
 {
     IMusicClient client = new MusicClient("test", "gb", new MockApiRequestHandler(FakeResponse.NotFound()));
     client.GetProduct(
         (Response<Product> result) =>
         {
             Assert.IsNotNull(result, "Expected a result");
             Assert.IsNotNull(result.StatusCode, "Expected a status code");
             Assert.IsTrue(result.StatusCode.HasValue, "Expected a status code");
             Assert.AreNotEqual(HttpStatusCode.OK, result.StatusCode.Value, "Expected a non-OK response");
             Assert.IsNotNull(result.Error, "Expected an error");
             Assert.AreEqual(typeof(ApiCallFailedException), result.Error.GetType(), "Expected an ApiCallFailedException");
         },
         "test");
 }
        public void EnsureApiNotAvailableExceptionThrownWhenRegionInfoCtorUsedAndCountryIsInvalidForItemMethods()
        {
            // First test the public constructor...
            MusicClient publicClient = new MusicClient("test");

            // Now test the handling of non-availability...

            // Our REST API will give a 404 response when the country code is not valid, so this test
            // ensures that gets translated into an ApiNotAvailableException when the RegionInfo constructor is used.
            MusicClient client = new MusicClient("test", new MockApiRequestHandler(FakeResponse.NotFound()));
            client.GetProduct(
                (Response<Product> response) =>
                {
                    Assert.IsNotNull(response.Error, "Expected an Error");
                    Assert.AreEqual(typeof(ApiNotAvailableException), response.Error.GetType(), "Expected an ApiNotAvailableException");
                },
                "test");
        }
 public void EnsureInvalidApiCredentialsExceptionThrownWhenServerGives403ForItemMethods()
 {
     MusicClient client = new MusicClient("badkey", "us", new MockApiRequestHandler(FakeResponse.Forbidden()));
     client.GetProduct(
         (Response<Product> response) =>
         {
             Assert.IsNotNull(response.Error, "Expected an Error");
             Assert.AreEqual(typeof(InvalidApiCredentialsException), response.Error.GetType(), "Expected an InvalidApiCredentialsException");
         },
         "test");
 }
 public void EnsureGetProductThrowsExceptionForNullProductId()
 {
     string nullId = null;
     IMusicClient client = new MusicClient("test", "gb", new MockApiRequestHandler(Resources.single_product));
     client.GetProduct((Response<Product> result) => { }, nullId);
 }
 public void EnsureGetProductThrowsExceptionForNullCallback()
 {
     IMusicClient client = new MusicClient("test", "gb", new MockApiRequestHandler(Resources.single_product));
     client.GetProduct(null, "test");
 }
 public void EnsureGetProductReturnsItems()
 {
     IMusicClient client = new MusicClient("test", "gb", new MockApiRequestHandler(Resources.single_product));
     client.GetProduct(this.ValidateProductResponse, "test");
 }