public async Task NominateProjectAsync_WithDifferentPackageVersions_Fails(string version1, string version2) { var cps = NewCpsProject("{ }"); var projectFullPath = cps.ProjectFullPath; var pri = cps.Builder .WithTargetFrameworkInfo( new VsTargetFrameworkInfo( "netcoreapp1.0", Enumerable.Empty <IVsReferenceItem>(), Enumerable.Empty <IVsReferenceItem>(), new[] { new VsProjectProperty("PackageVersion", version1) })) .WithTargetFrameworkInfo( new VsTargetFrameworkInfo( "net46", Enumerable.Empty <IVsReferenceItem>(), Enumerable.Empty <IVsReferenceItem>(), new[] { new VsProjectProperty("PackageVersion", version2) })) .Build(); var cache = Mock.Of <IProjectSystemCache>(); var restoreWorker = Mock.Of <ISolutionRestoreWorker>(); var service = new VsSolutionRestoreService( cache, restoreWorker, NuGet.Common.NullLogger.Instance); // Act var result = await service.NominateProjectAsync(projectFullPath, pri, CancellationToken.None); Assert.False(result, "Project restore nomination must fail."); }
private async Task <DependencyGraphSpec> CaptureNominateResultAsync( string projectFullPath, IVsProjectRestoreInfo pri) { DependencyGraphSpec capturedRestoreSpec = null; var cache = Mock.Of <IProjectSystemCache>(); Mock.Get(cache) .Setup(x => x.AddProjectRestoreInfo( It.IsAny <ProjectNames>(), It.IsAny <DependencyGraphSpec>())) .Callback <ProjectNames, DependencyGraphSpec>( (_, dg) => { capturedRestoreSpec = dg; }) .Returns(true); var restoreWorker = Mock.Of <ISolutionRestoreWorker>(); Mock.Get(restoreWorker) .Setup(x => x.ScheduleRestoreAsync( It.IsAny <SolutionRestoreRequest>(), CancellationToken.None)) .ReturnsAsync(true); var service = new VsSolutionRestoreService( cache, restoreWorker, NuGet.Common.NullLogger.Instance); // Act var result = await service.NominateProjectAsync(projectFullPath, pri, CancellationToken.None); Assert.True(result, "Project restore nomination should succeed."); return(capturedRestoreSpec); }
public void NominateProjectAsync_Always_SchedulesAutoRestore() { var cps = NewCpsProject(); var cache = Mock.Of <IProjectSystemCache>(); Mock.Get(cache) .Setup(x => x.AddProjectRestoreInfo( It.IsAny <ProjectNames>(), It.IsAny <DependencyGraphSpec>())) .Returns(true); var completedRestoreTask = Task.FromResult(true); var restoreWorker = Mock.Of <ISolutionRestoreWorker>(); Mock.Get(restoreWorker) .Setup(x => x.ScheduleRestoreAsync( It.IsAny <SolutionRestoreRequest>(), CancellationToken.None)) .Returns(completedRestoreTask); var service = new VsSolutionRestoreService( cache, restoreWorker, NuGet.Common.NullLogger.Instance); // Act var actualRestoreTask = service.NominateProjectAsync(cps.ProjectFullPath, cps.ProjectRestoreInfo, CancellationToken.None); Assert.Same(completedRestoreTask, actualRestoreTask); Mock.Get(restoreWorker) .Verify( x => x.ScheduleRestoreAsync(It.IsAny <SolutionRestoreRequest>(), CancellationToken.None), Times.Once(), "Service should schedule auto-restore operation."); }