private static EvaluationCommandLineHandler CreateInstanceWithDesignTimeItems(string fullPath, string semiColonSeparatedItems) { var handler = CreateInstance(fullPath); // Setup the "current state" ApplyProjectBuild(handler, 1, IProjectChangeDiffFactory.WithAddedItems(semiColonSeparatedItems)); return(handler); }
public void ApplyProjectBuild_AddsItemFullPathRelativeToProject(string includePath, string expected) { var handler = CreateInstance(@"C:\Project\Project.csproj"); var difference = IProjectChangeDiffFactory.WithAddedItems(includePath); ApplyProjectBuild(handler, 1, difference); Assert.Single(handler.FileNames, expected); }
public void ApplyProjectBuild_WithExistingDesignTimeChanges_CanAddItem(string currentFiles, string filesToAdd, string expected) { string[] expectedFiles = expected.Split(';'); var handler = CreateInstanceWithDesignTimeItems(@"C:\Project\Project.csproj", currentFiles); var difference = IProjectChangeDiffFactory.WithAddedItems(filesToAdd); ApplyProjectBuild(handler, 2, difference); Assert.Equal(expectedFiles.OrderBy(f => f), handler.FileNames.OrderBy(f => f)); }
public void ApplyEvaluationChanges_WithExistingEvaluationChanges_CanAddItem(string currentFiles, string filesToAdd, string expected) { string[] expectedFiles = expected.Split(';'); var handler = CreateInstanceWithEvaluationItems(@"C:\Project\Project.csproj", currentFiles); var difference = IProjectChangeDiffFactory.WithAddedItems(filesToAdd); ApplyEvaluationChanges(handler, 2, difference); Assert.Equal(handler.Files.OrderBy(f => f), expectedFiles.OrderBy(f => f)); }
public void AddEvaluationChanges_CanAddItemWithMetadata() { var handler = CreateInstance(@"C:\Project\Project.csproj"); var difference = IProjectChangeDiffFactory.WithAddedItems("A.cs"); var metadata = MetadataFactory.Create("A.cs", ("Name", "Value")); ApplyProjectEvaluation(handler, 1, difference, metadata); var result = handler.Files[@"C:\Project\A.cs"]; Assert.Equal("Value", result["Name"]); }
public void AddEvaluationChanges_ItemsWithExclusionMetadataAreIgnored() { var handler = CreateInstance(@"C:\Project\Project.csproj"); var difference = IProjectChangeDiffFactory.WithAddedItems("A.cs;B.cs;C.cs"); var metadata = MetadataFactory.Create("A.cs", ("ExcludeFromCurrentConfiguration", "true")) .Add("B.cs", ("ExcludeFromCurrentConfiguration", "false")); ApplyProjectEvaluation(handler, 1, difference, metadata); string[] expectedFiles = new[] { @"C:\Project\B.cs", @"C:\Project\C.cs" }; Assert.Equal(expectedFiles.OrderBy(f => f), handler.FileNames.OrderBy(f => f)); }
public void ApplyProjectBuild_WhenOlderEvaluationChangesWithRemovedConflict_DesignTimeWinsOut() { var handler = CreateInstance(@"C:\Project\Project.csproj"); int evaluationVersion = 0; // Setup the "current state" ApplyProjectEvaluation(handler, evaluationVersion, IProjectChangeDiffFactory.WithRemovedItems("Source.cs")); int designTimeVersion = 1; ApplyProjectBuild(handler, designTimeVersion, IProjectChangeDiffFactory.WithAddedItems("Source.cs")); Assert.Single(handler.FileNames, @"C:\Project\Source.cs"); }
public void ApplyDesignTimeChanges_WhenNewerEvaluationChangesWithRemovedConflict_EvaluationWinsOut() { var handler = CreateInstance(@"C:\Project\Project.cs"); int evaluationVersion = 1; // Setup the "current state" ApplyEvaluationChanges(handler, evaluationVersion, IProjectChangeDiffFactory.WithRemovedItems("Source.cs")); int designTimeVersion = 0; ApplyDesignTimeChanges(handler, designTimeVersion, IProjectChangeDiffFactory.WithAddedItems("Source.cs")); Assert.Empty(handler.Files); }