/// <summary> /// Retrieves available genres from MixRadio API. /// </summary> public async void GetGenres() { if (!initialized) { return; } ShowProgressIndicator("GetGenres()"); ListResponse <Genre> response = await client.GetGenresAsync(); // Use results if (response != null && response.Result != null && response.Result.Count > 0) { int genreCount = response.Count(); App.ViewModel.Genres.Clear(); foreach (Genre g in response.Result) { App.ViewModel.Genres.Add(new GenreModel() { Name = g.Name, Id = g.Id }); } } if (response != null && response.Error != null) { ShowMixRadioApiError(); } HideProgressIndicator("GetGenres()"); }
public async void EnsureAsyncGetGenresReturnsItems() { // Only test happy path, as the MusicClient tests cover the unhappy path IMusicClient client = new MusicClient("test", "gb", new MockApiRequestHandler(Resources.genres)); ListResponse<Genre> result = await client.GetGenresAsync(); Assert.Greater(result.Result.Count, 0, "Expected more than 0 results"); }
public async Task EnsureGetGenresReturnsAnUnhandledErrorForFailedCall() { IMusicClient client = new MusicClient("test", "gb", new MockApiRequestHandler(FakeResponse.ConflictServerError("{ \"error\":\"true\"}"))); var result = await client.GetGenresAsync(); 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"); }
public void EnsureGetGenresReturnsErrorForFailedCall() { IMusicClient client = new MusicClient("test", "gb", new MockApiRequestHandler(FakeResponse.InternalServerError())); var task = client.GetGenresAsync(); task.Wait(); ListResponse<Genre> result = task.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"); }
public void EnsureGetGenresReturnsErrorForFailedCall() { IMusicClient client = new MusicClient("test", "gb", new MockApiRequestHandler(FakeResponse.InternalServerError())); var task = client.GetGenresAsync(); task.Wait(); ListResponse <Genre> result = task.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"); }
public async Task EnsureGetGenresReturnsItems() { IMusicClient client = new MusicClient("test", "gb", new MockApiRequestHandler(Resources.genres)); var result = await client.GetGenresAsync(); 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 (Genre genre in result.Result) { Assert.IsFalse(string.IsNullOrEmpty(genre.Id), "Expected Id to be populated"); Assert.IsFalse(string.IsNullOrEmpty(genre.Name), "Expected Name to be populated"); } }