public async Task DownloadItemAndContentInCommitAsync(ItemChange change, string commitId, Guid repositoryId, CancellationToken token)
        {
            CreateHttpClient();

            var item = await _httpClient.GetItemAsync(
                repositoryId,
                change.Item.Path,
                includeContentMetadata : true,
                versionDescriptor : new Microsoft.TeamFoundation.SourceControl.WebApi.GitVersionDescriptor()
            {
                VersionType = Microsoft.TeamFoundation.SourceControl.WebApi.GitVersionType.Commit,
                Version     = commitId
            },
                cancellationToken : token
                );

            change.Item.ContentMetadata = item.ContentMetadata.ToSync();

            if (!item.IsFolder)
            {
                var content = await _httpClient.GetBlobContentAsync(repositoryId, item.ObjectId, cancellationToken : token);

                await change.SetNewContentAsync(content, token);
            }
        }
        public void CreateBinaryItemContext()
        {
            var item = new Item(string.Empty)
            {
                ContentMetadata = new FileContentMetadata("image/x-icon")
            };
            var itemChange = new ItemChange(ItemChangeType.None, item);

            var testData = Encoding.UTF8.GetBytes("Testing");

            using (var memoryStream = new MemoryStream(testData))
            {
                itemChange.SetNewContentAsync(memoryStream, CancellationToken.None).Wait();

                Assert.AreEqual(ItemContentType.Base64Encoded, itemChange.NewContent.ContentType);
                Assert.AreEqual(Convert.ToBase64String(testData), itemChange.NewContent.Content);
            }
        }
        public void CreateTextItemContent()
        {
            var item = new Item(string.Empty)
            {
                ContentMetadata = new FileContentMetadata("text/plain", Encoding.UTF8)
            };
            var itemChange = new ItemChange(ItemChangeType.None, item);

            var testData = "Testing";

            using (var memoryStream = new MemoryStream(Encoding.UTF8.GetBytes(testData)))
            {
                itemChange.SetNewContentAsync(memoryStream, CancellationToken.None).Wait();

                Assert.AreEqual(ItemContentType.RawText, itemChange.NewContent.ContentType);
                Assert.AreEqual(testData, itemChange.NewContent.Content);
            }
        }