public async Task DoesNotPushWhenThereAreNoChanges()
            {
                await Target.ExecuteAsync();

                Pusher.Verify(
                    x => x.EnqueueIndexActions(It.IsAny <string>(), It.IsAny <IndexActions>()),
                    Times.Never);
                Pusher.Verify(x => x.TryPushFullBatchesAsync(), Times.Never);
                Pusher.Verify(x => x.TryFinishAsync(), Times.Never);
                OwnerDataClient.Verify(x => x.UploadChangeHistoryAsync(It.IsAny <IReadOnlyList <string> >()), Times.Never);
                OwnerDataClient.Verify(
                    x => x.ReplaceLatestIndexedAsync(
                        It.IsAny <SortedDictionary <string, SortedSet <string> > >(),
                        It.IsAny <IAccessCondition>()),
                    Times.Never);
            }
            public async Task UpdatesBlobStorage()
            {
                IReadOnlyList <string> changeHistory = null;

                OwnerDataClient
                .Setup(x => x.UploadChangeHistoryAsync(It.IsAny <IReadOnlyList <string> >()))
                .Returns(Task.CompletedTask)
                .Callback <IReadOnlyList <string> >(x => changeHistory = x);

                Changes["NuGet.Versioning"] = new string[0];
                Changes["NuGet.Core"]       = new string[0];

                await Target.ExecuteAsync();

                Assert.Equal(new[] { "NuGet.Core", "NuGet.Versioning" }, changeHistory.ToArray());
                OwnerDataClient.Verify(
                    x => x.ReplaceLatestIndexedAsync(DatabaseResult, StorageResult.AccessCondition),
                    Times.Once);
            }