Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'main/tests/MonoDevelop.Core.Tests/MonoDevelop.Projects/ProjectTests.cs')
-rw-r--r--main/tests/MonoDevelop.Core.Tests/MonoDevelop.Projects/ProjectTests.cs26
1 files changed, 26 insertions, 0 deletions
diff --git a/main/tests/MonoDevelop.Core.Tests/MonoDevelop.Projects/ProjectTests.cs b/main/tests/MonoDevelop.Core.Tests/MonoDevelop.Projects/ProjectTests.cs
index e44b98f5c6..0913f550de 100644
--- a/main/tests/MonoDevelop.Core.Tests/MonoDevelop.Projects/ProjectTests.cs
+++ b/main/tests/MonoDevelop.Core.Tests/MonoDevelop.Projects/ProjectTests.cs
@@ -1226,6 +1226,32 @@ namespace MonoDevelop.Projects
}
}
+ /// <summary>
+ /// Ensure the cached value is updated when the Project or FileName changes.
+ /// </summary>
+ [Test]
+ public void ProjectFileIncludeCachingTests ()
+ {
+ using (var project = Services.ProjectService.CreateDotNetProject ("C#")) {
+ FilePath directory = Util.CreateTmpDir ("ProjectFileIncludeCachingTests");
+ project.FileName = directory.Combine ("Project.csproj");
+
+ var fileName = project.BaseDirectory.Combine ("Source", "Test.cs");
+ var projectFile = new ProjectFile (fileName);
+ projectFile.Project = project;
+
+ Assert.AreEqual (@"Source\Test.cs", projectFile.Include);
+
+ projectFile.Name = projectFile.FilePath.ChangeName ("Changed");
+ Assert.AreEqual (@"Source\Changed.cs", projectFile.Include);
+ Assert.AreEqual (@"Source\Changed.cs", projectFile.UnevaluatedInclude);
+
+ // Change project's ItemDirectory. This will change the ProjectFile's Include.
+ project.FileName = project.BaseDirectory.Combine ("Source", "Project.csproj");
+ Assert.AreEqual ("Changed.cs", projectFile.Include);
+ }
+ }
+
class TestGetReferencesProjectExtension : DotNetProjectExtension
{
protected internal override Task<List<AssemblyReference>> OnGetReferences (ConfigurationSelector configuration, CancellationToken token)