public async Task OnInputsChangedAsync_UnchangedValueAsValue_DoesNotPushToRestoreService()
        {
            int callCount = 0;
            var solutionRestoreService = IVsSolutionRestoreServiceFactory.ImplementNominateProjectAsync((projectFile, info, cancellationToken) => { callCount++; });

            var instance = await CreateInitializedInstance(solutionRestoreService : solutionRestoreService);

            var restoreInfo = ProjectRestoreInfoFactory.Create();
            var value       = IProjectVersionedValueFactory.Create(new PackageRestoreUnconfiguredInput(restoreInfo, new PackageRestoreConfiguredInput[0]));

            await instance.OnInputsChangedAsync(value);

            Assert.Equal(1, callCount); // Should have only been called once
        }
        public async Task OnInputsChangedAsync_PushesRestoreInfoToRestoreService()
        {
            IVsProjectRestoreInfo2?result = null;
            var solutionRestoreService    = IVsSolutionRestoreServiceFactory.ImplementNominateProjectAsync((projectFile, info, cancellationToken) => { result = info; });

            var instance = await CreateInitializedInstance(solutionRestoreService : solutionRestoreService);

            var restoreInfo = ProjectRestoreInfoFactory.Create();
            var value       = IProjectVersionedValueFactory.Create(new PackageRestoreUnconfiguredInput(restoreInfo, new PackageRestoreConfiguredInput[0]));

            await instance.OnInputsChangedAsync(value);

            Assert.Same(restoreInfo, result);
        }