public async Task GetNewReleases_Country_UrlContainsCountry() { // arrange const string country = SpotifyCountryCodes.New_Zealand; var http = new MockHttpClient(); var accounts = new MockAccountsService().Object; var api = new Mock <BrowseApi>(http.HttpClient, accounts) { CallBase = true }; api.Setup(a => a.GetModelFromProperty <PagedAlbums>( It.IsAny <Uri>(), It.IsAny <string>(), It.IsAny <string>())).ReturnsAsync(new PagedAlbums()); // act await api.Object.GetNewReleases(country : country); // assert api.Verify(a => a.GetModelFromProperty <PagedAlbums>( new Uri($"https://api.spotify.com/v1/browse/new-releases?country={SpotifyCountryCodes.New_Zealand}"), It.IsAny <string>(), It.IsAny <string>())); }
public async Task BasicUsage() { // Arrange const string username = "******"; var mockHttp = new MockHttpClient(); mockHttp.SetupSendAsync("{\"Id\":\"def456\",\"Name\":\"ghi789\"}"); var accounts = new MockAccountsService().Object; var playlists = new PlaylistsApi(mockHttp.HttpClient, accounts); // Act var result1 = await playlists.GetPlaylists(username); Trace.WriteLine(result1); }
public async Task GetTracks_UsernameAndPlaylistId_GetAccessTokenCalled() { // Arrange const string playlistId = "jkl012"; var mockHttp = new MockHttpClient(); mockHttp.SetupSendAsync("{\"Id\":\"def456\",\"Name\":\"ghi789\"}"); var mockAccounts = new MockAccountsService(); var api = new PlaylistsApi(mockHttp.HttpClient, mockAccounts.Object); // Act await api.GetTracks(playlistId); // Assert mockAccounts.Verify(a => a.GetAccessToken()); }
public async Task GetPlaylists_Username_GetAccessTokenCalled() { // Arrange const string username = "******"; var mockHttp = new MockHttpClient(); mockHttp.SetupSendAsync("{\"Id\":\"def456\",\"Name\":\"ghi789\"}"); var mockAccounts = new MockAccountsService(); var api = new PlaylistsApi(mockHttp.HttpClient, mockAccounts.Object); // Act await api.GetPlaylists(username); // Assert mockAccounts.Verify(a => a.GetAppAccessToken()); }
public async Task GetRecommendations_2SeedTracks_UrlContainstracks() { // arrange string[] tracks = new[] { "trackabc123", "trackdef456" }; var http = new MockHttpClient(); var accounts = new MockAccountsService().Object; var api = new Mock <BrowseApi>(http.HttpClient, accounts) { CallBase = true }; api.Setup(a => a.GetModel <RecommendationsResult>(It.IsAny <string>(), null)).ReturnsAsync(new RecommendationsResult()); // act await api.Object.GetRecommendations(null, null, tracks); // assert api.Verify(a => a.GetModel <RecommendationsResult>("https://api.spotify.com/v1/recommendations?seed_tracks=trackabc123,trackdef456&", null)); }
public async Task GetRecommendations_2SeedGenres_UrlContainsGenres() { // arrange string[] genres = new[] { "genreabc123", "genredef456" }; var http = new MockHttpClient(); var accounts = new MockAccountsService().Object; var api = new Mock <BrowseApi>(http.HttpClient, accounts) { CallBase = true }; api.Setup(a => a.GetModel <RecommendationsResult>(It.IsAny <Uri>(), null)) .ReturnsAsync(new RecommendationsResult()); // act await api.Object.GetRecommendations(null, genres, null); // assert api.Verify(a => a.GetModel <RecommendationsResult>( new Uri("https://api.spotify.com/v1/recommendations?seed_genres=genreabc123,genredef456"), null)); }