public async Task TestGetMissingPackagesForSolution() { // Arrange var testSolutionManager = new TestSolutionManager(); var projectA = testSolutionManager.AddNewMSBuildProject(); var projectB = testSolutionManager.AddNewMSBuildProject(); var packageIdentity = new PackageIdentity("packageA", new NuGetVersion("1.0.0")); var randomPackageSourcePath = TestFilesystemUtility.CreateRandomTestFolder(); var packageFileInfo = TestPackages.GetLegacyTestPackage(randomPackageSourcePath, packageIdentity.Id, packageIdentity.Version.ToNormalizedString()); var testNuGetProjectContext = new TestNuGetProjectContext(); var token = CancellationToken.None; using (var packageStream = packageFileInfo.OpenRead()) { // Act await projectA.InstallPackageAsync(packageIdentity, packageStream, testNuGetProjectContext, token); await projectB.InstallPackageAsync(packageIdentity, packageStream, testNuGetProjectContext, token); } var sourceRepositoryProvider = TestSourceRepositoryUtility.CreateV3OnlySourceRepositoryProvider(); var testSettings = NullSettings.Instance; var packageRestoreManager = new PackageRestoreManager(sourceRepositoryProvider, testSettings, testSolutionManager); // Act var packageReferencesFromSolution = (await packageRestoreManager.GetPackageReferencesFromSolution(token)).ToList(); var missingPackagesFromSolution = (await packageRestoreManager.GetMissingPackagesInSolution(token)).ToList(); Assert.Equal(2, packageReferencesFromSolution.Count); Assert.Equal(0, missingPackagesFromSolution.Count); // Delete packages folder Directory.Delete(Path.Combine(testSolutionManager.SolutionDirectory, "packages"), recursive: true); packageReferencesFromSolution = (await packageRestoreManager.GetPackageReferencesFromSolution(token)).ToList(); missingPackagesFromSolution = (await packageRestoreManager.GetMissingPackagesInSolution(token)).ToList(); Assert.Equal(2, packageReferencesFromSolution.Count); Assert.Equal(1, missingPackagesFromSolution.Count); }