public async Task ShouldUpdatePlaylistWithAllParams()
        {
            // Arrange
            const string playlistId = "40C5k2GWBlficlUyQKmR0S";
            var          request    = new ChangePlaylistDetailsRequest()
            {
                Name          = "Test Playlist",
                Description   = "Test Playlist Description",
                Collaborative = true,
                Public        = true
            };

            this.MockHttp
            .ExpectSpotifyRequest(HttpMethod.Put, $"playlists/{playlistId}")
            .WithExactQueryString(string.Empty)
            .WithJsonContent(j =>
                             j.EnumerateObject().Count() == 4 &&
                             j.TryGetProperty("name", out var name) && name.GetString() == request.Name &&
                             j.TryGetProperty("description", out var description) && description.GetString() == request.Description &&
                             j.TryGetProperty("collaborative", out var collaborative) && collaborative.GetBoolean() == request.Collaborative &&
                             j.TryGetProperty("public", out var @public) && @public.GetBoolean() == request.Public)
            .Respond(HttpStatusCode.OK);

            // Act
            await this.Client.Playlists(playlistId).ChangeDetailsAsync(request);

            // Assert
            this.MockHttp.VerifyNoOutstandingExpectation();
        }
        public async Task ShouldUpdatePlaylist()
        {
            // Arrange
            const string playlistId = "40C5k2GWBlficlUyQKmR0S";
            var          request    = new ChangePlaylistDetailsRequest();

            this.MockHttp
            .ExpectSpotifyRequest(HttpMethod.Put, $"playlists/{playlistId}")
            .WithExactQueryString(string.Empty)
            .WithJsonContent(j => !j.EnumerateObject().Any())
            .Respond(HttpStatusCode.OK);

            // Act
            await this.Client.Playlists(playlistId).ChangeDetailsAsync(request);

            // Assert
            this.MockHttp.VerifyNoOutstandingExpectation();
        }
 public Task ChangeDetailsAsync(ChangePlaylistDetailsRequest changePlaylistDetailsRequest, CancellationToken cancellationToken)
 => this.SendBodyAsync(HttpMethod.Put, changePlaylistDetailsRequest, cancellationToken);