public void EnsureSearchReturnsErrorForFailedCall() { IMusicClient client = new MusicClient("test", "test", "gb", new MockApiRequestHandler(FakeResponse.NotFound())); client.Search( (ListResponse<MusicItem> 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"); }, "green day"); }
public void EnsureSearchReturnsItemsForValidSearch() { IMusicClient client = new MusicClient("test", "test", "gb", new SuccessfulMockApiRequestHandler()); client.Search( (ListResponse<MusicItem> 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.AreEqual(HttpStatusCode.OK, result.StatusCode.Value, "Expected a 200 response"); Assert.IsNotNull(result.Result, "Expected a list of results"); Assert.IsNull(result.Error, "Expected no error"); Assert.Greater(result.Result.Count, 0, "Expected more than 0 results"); }, "lady gaga"); }
public void EnsureApiNotAvailableExceptionThrownWhenRegionInfoCtorUsedAndCountryIsInvalid() { // First test the public constructor... MusicClient publicClient = new MusicClient("test", "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", "test", new MockApiRequestHandler(FakeResponse.NotFound())); client.Search( (ListResponse<MusicItem> response) => { Assert.IsNotNull(response.Error, "Expected an Error"); Assert.AreEqual(typeof(ApiNotAvailableException), response.Error.GetType(), "Expected an ApiNotAvailableException"); }, "test"); }
public void EnsureSearchReturnsItemsForValidSearch() { IMusicClient client = new MusicClient("test", "gb", new MockApiRequestHandler(Resources.search_all)); client.Search( (ListResponse<MusicItem> 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.AreEqual(HttpStatusCode.OK, result.StatusCode.Value, "Expected a 200 response"); Assert.IsNotNull(result.Result, "Expected a list of results"); Assert.IsNull(result.Error, "Expected no error"); Assert.Greater(result.Result.Count, 0, "Expected more than 0 results"); foreach (MusicItem item in result.Result) { Assert.IsFalse(string.IsNullOrEmpty(item.Id), "Expected Id to be populated"); Assert.IsFalse(string.IsNullOrEmpty(item.Name), "Expected Name to be populated"); Assert.IsNotNull(item.Thumb100Uri, "Expected a thumbnail uri"); } }, "lady gaga"); }
public void EnsureInvalidApiCredentialsExceptionThrownWhenServerGives403() { MusicClient client = new MusicClient("badkey", "test", "us", new MockApiRequestHandler(FakeResponse.Forbidden())); client.Search( (ListResponse<MusicItem> response) => { Assert.IsNotNull(response.Error, "Expected an Error"); Assert.AreEqual(typeof(InvalidApiCredentialsException), response.Error.GetType(), "Expected an InvalidApiCredentialsException"); }, "test"); }
public void EnsureSearchThrowsExceptionForNullCallback() { IMusicClient client = new MusicClient("test", "gb", new MockApiRequestHandler(Resources.search_all)); client.Search(null, "lady gaga"); }
public void EnsureSearchThrowsExceptionForNullSearchTerm() { IMusicClient client = new MusicClient("test", "gb", new MockApiRequestHandler(Resources.search_all)); client.Search((ListResponse<MusicItem> resp) => { }, null); }