/// <summary> /// Create RestoreRequests for msbuild based projects or solutions. /// </summary> /// <param name="providerCache">Shared resource providers.</param> /// <param name="projectProvider">Request provider.</param> /// <param name="settings">Solution or project level nuget.config settings.</param> public MSBuildCachedRequestProvider( RestoreCommandProvidersCache providerCache, MSBuildProjectReferenceProvider projectProvider, Configuration.ISettings settings) : base(providerCache) { if (providerCache == null) { throw new ArgumentNullException(nameof(providerCache)); } if (projectProvider == null) { throw new ArgumentNullException(nameof(projectProvider)); } if (settings == null) { throw new ArgumentNullException(nameof(settings)); } _providerCache = providerCache; _projectProvider = projectProvider; _settings = settings; }
public void MSBuildProjectReferenceProvider_EmptyFile() { // Arrange var lines = new List <string>(); // Act var provider = new MSBuildProjectReferenceProvider(lines); // Assert Assert.Equal(0, provider.GetReferences("testpath").Count); Assert.Equal(0, provider.GetEntryPoints().Count); }
public void MSBuildProjectReferenceProvider_NoEdges() { // Arrange var lines = new List <string>(); lines.Add("#:/tmp/project1.csproj"); lines.Add("#:/tmp/project2.csproj"); // Act var provider = new MSBuildProjectReferenceProvider(lines); // Assert Assert.Equal(1, provider.GetReferences("/tmp/project1.csproj").Count); Assert.Equal(1, provider.GetReferences("/tmp/project2.csproj").Count); Assert.Equal("/tmp/project1.csproj", provider.GetReferences("/tmp/project1.csproj").Single().MSBuildProjectPath); Assert.Null(provider.GetReferences("/tmp/project1.csproj").Single().PackageSpecPath); Assert.Equal(2, provider.GetEntryPoints().Count); }
public void MSBuildProjectReferenceProvider_FindProjectJson() { using (var workingDir = TestFileSystemUtility.CreateRandomTestFolder()) { // Arrange var project1Dir = Path.Combine(workingDir, "project1"); Directory.CreateDirectory(project1Dir); var project1Json = Path.Combine(project1Dir, "project.json"); var project1proj = Path.Combine(project1Dir, "project1.csproj"); var project2Dir = Path.Combine(workingDir, "project2"); Directory.CreateDirectory(project2Dir); var project2Json = Path.Combine(project2Dir, "project2.project.json"); var project2proj = Path.Combine(project2Dir, "project2.csproj"); File.WriteAllText(project1Json, ProjectJson); File.WriteAllText(project2Json, ProjectJson); File.WriteAllText(project1proj, string.Empty); File.WriteAllText(project2proj, string.Empty); var lines = new List <string>(); lines.Add($"#:{project1proj}"); lines.Add($"{project1proj}|{project2proj}"); // Act var provider = new MSBuildProjectReferenceProvider(lines); var references = provider.GetReferences(project1proj); var root = references.Where(file => file.ExternalProjectReferences.Count > 0).Single(); var child = references.Where(file => file.ExternalProjectReferences.Count == 0).Single(); // Assert Assert.Equal(1, provider.GetEntryPoints().Count); Assert.Equal(project1Json, root.PackageSpec.FilePath); Assert.Equal(project2Json, child.PackageSpec.FilePath); Assert.Equal(project1proj, root.MSBuildProjectPath); Assert.Equal(project2proj, child.MSBuildProjectPath); } }
public PackageRestoreInputs() { ProjectReferenceLookup = new MSBuildProjectReferenceProvider(Enumerable.Empty <string>()); }