/// <nodoc /> public DiscriminatingUnion <FileArtifact, IReadOnlyList <DirectoryArtifact> > Remap(DiscriminatingUnion <FileArtifact, IReadOnlyList <DirectoryArtifact> > fileUnion) { DiscriminatingUnion <FileArtifact, IReadOnlyList <DirectoryArtifact> > remappedPath = null; if (fileUnion != null) { var fileValue = fileUnion.GetValue(); remappedPath = new DiscriminatingUnion <FileArtifact, IReadOnlyList <DirectoryArtifact> >(); if (fileValue is FileArtifact file) { remappedPath.SetValue(Remap(file)); } else if (fileValue is IReadOnlyList <DirectoryArtifact> searchDirectories) { remappedPath.SetValue(Remap(searchDirectories)); } } return(remappedPath); }
/// <nodoc /> public DiscriminatingUnion <FileArtifact, PathAtom> Remap(DiscriminatingUnion <FileArtifact, PathAtom> fileUnion) { DiscriminatingUnion <FileArtifact, PathAtom> remappedPath = null; if (fileUnion != null) { var fileValue = fileUnion.GetValue(); remappedPath = new DiscriminatingUnion <FileArtifact, PathAtom>(); if (fileValue is FileArtifact file) { remappedPath.SetValue(Remap(file)); } else if (fileValue is PathAtom pathAtom) { remappedPath.SetValue(Remap(pathAtom)); } } return(remappedPath); }
public void EnvironmentIsHonored() { var one = new DiscriminatingUnion <string, UnitValue>(); one.SetValue("1"); var project = CreateProjectWithPredictions("A.proj"); var testProj = Start(new MsBuildResolverSettings { Environment = new Dictionary <string, DiscriminatingUnion <string, UnitValue> > { ["Test"] = one } }) .Add(project) .ScheduleAll() .AssertSuccess() .RetrieveSuccessfulProcess(project); var testEnvironmentVariable = testProj.EnvironmentVariables.First(e => e.Name.ToString(PathTable.StringTable).Equals("Test")); Assert.Equal("1", testEnvironmentVariable.Value.ToString(PathTable)); }