public void DownloadCommitWithChanges() { var commitIdRequest = "1b1859c414e800d24036b9ee547d1530431ae055"; var pushRequest = CreatePushRequest(commitIdRequest); var fakeChanges = new ItemChange[] { new ItemChange(ItemChangeType.None, new Item("/index.html")) }; var fakeDownloadRequest = new Fakes.StubIDownloadRequest() { DownloadChangesInCommitAsyncStringGuidCancellationToken = (commitId, repositoryId, token) => { Assert.AreEqual(commitIdRequest, commitId); return(Task.FromResult(fakeChanges.AsEnumerable())); } }; var repo = new SourceRepository(fakeDownloadRequest); repo.DownloadChangesAsync(pushRequest, "/", CancellationToken.None).Wait(); Assert.IsTrue(fakeChanges.SequenceEqual(pushRequest.Commits.Single().Changes)); }