Пример #1
0
        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>()));
        }
Пример #2
0
        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);
        }
Пример #3
0
        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());
        }
Пример #4
0
        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());
        }
Пример #5
0
        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));
        }
Пример #6
0
        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));
        }