public async Task Integration_VimeoClient_UpdateTextTrackAsync()
        {
            // arrange
            VimeoClient client   = CreateAuthenticatedClient();
            var         original = await client.GetTextTrackAsync(vimeoSettings.VideoId, vimeoSettings.TextTrackId);

            original.ShouldNotBeNull();

            // act
            // update the text track record with some new values...
            var testName     = "NewTrackName";
            var testType     = "subtitles";
            var testLanguage = "fr";
            var testActive   = false;

            var updated = await client.UpdateTextTrackAsync(
                vimeoSettings.VideoId,
                vimeoSettings.TextTrackId,
                new TextTrack
            {
                name     = testName,
                type     = testType,
                language = testLanguage,
                active   = testActive
            });

            // inspect the result and ensure the values match what we expect...
            // assert
            testName.ShouldEqual(updated.name);
            testType.ShouldEqual(updated.type);
            testLanguage.ShouldEqual(updated.language);
            testActive.ShouldEqual(updated.active);

            // restore the original values...
            var final = await client.UpdateTextTrackAsync(
                vimeoSettings.VideoId,
                vimeoSettings.TextTrackId,
                new TextTrack
            {
                name     = original.name,
                type     = original.type,
                language = original.language,
                active   = original.active
            });

            // inspect the result and ensure the values match our originals...
            if (string.IsNullOrEmpty(original.name))
            {
                final.name.ShouldBeNull();
            }
            else
            {
                original.name.ShouldEqual(final.name);
            }

            if (string.IsNullOrEmpty(original.type))
            {
                final.type.ShouldBeNull();
            }
            else
            {
                original.type.ShouldEqual(final.type);
            }

            if (string.IsNullOrEmpty(original.language))
            {
                final.language.ShouldBeNull();
            }
            else
            {
                original.language.ShouldEqual(final.language);
            }

            original.active.ShouldEqual(final.active);
        }