public async Task EnsureGetArtistsAroundLocationReturnsErrorForFailedCall() { IMusicClient client = new MusicClient("test", "gb", new MockApiRequestHandler(Resources.search_noresults)); ListResponse<Artist> result = await client.GetArtistsAroundLocationAsync(51.45534, -2.59239); 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.AreEqual(result.Result.Count, 0, "Expected 0 results"); }
public async Task EnsureGetArtistsAroundLocationReturnsErrorForFailedCall() { IMusicClient client = new MusicClient("test", "gb", new MockApiRequestHandler(Resources.search_noresults)); ListResponse <Artist> result = await client.GetArtistsAroundLocationAsync(51.45534, -2.59239); 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.AreEqual(result.Result.Count, 0, "Expected 0 results"); }
public async Task EnsureGetArtistsAroundLocationReturnsArtistsForValidSearch() { IMusicClient client = new MusicClient("test", "gb", new MockApiRequestHandler(Resources.search_artists)); ListResponse<Artist> result = await client.GetArtistsAroundLocationAsync(51.45534, -2.59239); 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 (Artist artist in result.Result) { Assert.IsFalse(string.IsNullOrEmpty(artist.Id), "Expected Id to be populated"); Assert.IsFalse(string.IsNullOrEmpty(artist.Name), "Expected Name to be populated"); Assert.IsNotNull(artist.Genres, "Expected a genre list"); Assert.Greater(artist.Genres.Length, 0, "Expected more than 0 genres"); } }
public async Task EnsureGetArtistsAroundLocationReturnsArtistsForValidSearch() { IMusicClient client = new MusicClient("test", "gb", new MockApiRequestHandler(Resources.search_artists)); ListResponse <Artist> result = await client.GetArtistsAroundLocationAsync(51.45534, -2.59239); 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 (Artist artist in result.Result) { Assert.IsFalse(string.IsNullOrEmpty(artist.Id), "Expected Id to be populated"); Assert.IsFalse(string.IsNullOrEmpty(artist.Name), "Expected Name to be populated"); Assert.IsNotNull(artist.Genres, "Expected a genre list"); Assert.Greater(artist.Genres.Length, 0, "Expected more than 0 genres"); } }
public void EnsureGetArtistsAroundLocationAcceptsZeroLongitude() { IMusicClient client = new MusicClient("test", "gb", new MockApiRequestHandler(Resources.search_artists)); client.GetArtistsAroundLocationAsync(51.45534, 0).Wait(); }
public void EnsureThatADefaultZeroValueIsTreatedAsNull() { IMusicClient client = new MusicClient("test", "gb", new MockApiRequestHandler(Resources.search_artists)); client.GetArtistsAroundLocationAsync(0, 0).Wait(); }
/// <summary> /// Requests artists and bands originating nearby map center. /// Each artist/band is represented on the map as Pushpin. /// </summary> /// <param name="sender">Refresh menu item</param> /// <param name="e">Event arguments</param> private async void GetNearbyArtists() { // Only one artist search can be ongoing at a time. if (busyIndicator.IsVisible) { return; } busyIndicator.IsVisible = true; prevSearchCoordinate = Map.Center; // Sign up for api appId at http://dev.mixrad.io if (client == null) { client = new MusicClient(MixRadio.TestApp.ApiKeys.ClientId); } var res = await client.GetArtistsAroundLocationAsync(Map.Center.Latitude, Map.Center.Longitude, 50, 0, 40); if (res.Result != null) { if (nearbyArtists == null) { nearbyArtists = new ObservableCollection <Artist>(); this.MapItems.ItemsSource = nearbyArtists; } for (int i = 0; i < res.Result.Count; i++) { int removeBandIndex = 0; // Add unique artists until MAX_ARTISTS_COUNT is reached. // Removal is made beginning from the oldest results, // excluding artists in the result set. if (!nearbyArtists.Contains(res.Result[i])) { nearbyArtists.Add(res.Result[i]); } if (nearbyArtists.Count > MAX_ARTISTS_COUNT) { while (res.Result.Contains(nearbyArtists[removeBandIndex])) { removeBandIndex++; if (removeBandIndex > MAX_ARTISTS_COUNT) { break; } } nearbyArtists.RemoveAt(removeBandIndex); } } } busyIndicator.IsVisible = false; // Make a new request if the map center changed during operation. if (prevSearchCoordinate != Map.Center) { GetNearbyArtists(); } }
public async void EnsureAsyncGetArtistsAroundLocationReturnsItems() { // Only test happy path, as the MusicClient tests cover the unhappy path IMusicClient client = new MusicClient("test", "gb", new MockApiRequestHandler(Resources.search_artists)); ListResponse<Artist> result = await client.GetArtistsAroundLocationAsync(51.45534, -2.59239); Assert.Greater(result.Result.Count, 0, "Expected more than 0 results"); }
public async Task EnsureGetArtistsAroundLocationAcceptsZeroLatitude() { IMusicClient client = new MusicClient("test", "gb", new MockApiRequestHandler(Resources.search_artists)); await client.GetArtistsAroundLocationAsync(0, -2.59239); }