diff --git a/src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/ProjectItem.cs b/src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/ProjectItem.cs index 603c281547..2bfbb81695 100644 --- a/src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/ProjectItem.cs +++ b/src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/ProjectItem.cs @@ -13,6 +13,7 @@ namespace ICSharpCode.PackageManagement.EnvDTE { SD.FileProjectItem projectItem; public const string CopyToOutputDirectoryPropertyName = "CopyToOutputDirectory"; + public const string CustomToolPropertyName = "CustomTool"; public ProjectItem(Project project, SD.FileProjectItem projectItem) { @@ -38,6 +39,8 @@ namespace ICSharpCode.PackageManagement.EnvDTE { if (name == CopyToOutputDirectoryPropertyName) { return GetCopyToOutputDirectory(); + } else if (name == CustomToolPropertyName) { + return projectItem.CustomTool; } return String.Empty; } @@ -51,6 +54,8 @@ namespace ICSharpCode.PackageManagement.EnvDTE { if (name == CopyToOutputDirectoryPropertyName) { SetCopyToOutputDirectory(value); + } else if (name == CustomToolPropertyName) { + projectItem.CustomTool = value as string; } } diff --git a/src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/ProjectItemPropertyFactory.cs b/src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/ProjectItemPropertyFactory.cs index 365e4373d3..a6790e13e7 100644 --- a/src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/ProjectItemPropertyFactory.cs +++ b/src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/ProjectItemPropertyFactory.cs @@ -23,6 +23,7 @@ namespace ICSharpCode.PackageManagement.EnvDTE public IEnumerator GetEnumerator() { yield return new ProjectItemProperty(projectItem, ProjectItem.CopyToOutputDirectoryPropertyName); + yield return new ProjectItemProperty(projectItem, "CustomTool"); } } } diff --git a/src/AddIns/Misc/PackageManagement/Test/PackageManagement.Tests.csproj b/src/AddIns/Misc/PackageManagement/Test/PackageManagement.Tests.csproj index 9a2ad402cd..bde267d2c6 100644 --- a/src/AddIns/Misc/PackageManagement/Test/PackageManagement.Tests.csproj +++ b/src/AddIns/Misc/PackageManagement/Test/PackageManagement.Tests.csproj @@ -75,7 +75,7 @@ - + diff --git a/src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/ProjectItemPropertyTests.cs b/src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/ProjectItemPropertyTests.cs index fd7b92b02d..2b6205d95e 100644 --- a/src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/ProjectItemPropertyTests.cs +++ b/src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/ProjectItemPropertyTests.cs @@ -91,6 +91,29 @@ namespace PackageManagement.Tests.EnvDTE Assert.IsTrue(saved); } + [Test] + public void Value_GetCustomTool_ReturnsProjectItemCustomTool() + { + CreateProjectItemProperties(); + msbuildFileProjectItem.CustomTool = "Test"; + + string customTool = properties.Item("CustomTool").Value as string; + + Assert.AreEqual("Test", customTool); + } + + [Test] + public void Value_SetCustomTool_UpdatesProjectItemCustomTool() + { + CreateProjectItemProperties(); + + properties.Item("CustomTool").Value = "MyCustomTool"; + + var customTool = msbuildFileProjectItem.CustomTool; + + Assert.AreEqual("MyCustomTool", customTool); + } + [Test] public void GetEnumerator_FindCopyToOutputDirectoryPropertyInAllProperties_ReturnsPropertyWithCopyToOutputDirectoryName() { @@ -102,7 +125,6 @@ namespace PackageManagement.Tests.EnvDTE Assert.AreEqual("CopyToOutputDirectory", property.Name); } - [Test] public void GetEnumerator_FindCopyToOutputDirectoryPropertyFromUntypedEnumerator_ReturnsPropertyWithCopyToOutputDirectoryName() { @@ -112,5 +134,16 @@ namespace PackageManagement.Tests.EnvDTE AssertContainsProperty("CopyToOutputDirectory", projectItemProperties); } + + [Test] + public void GetEnumerator_FindCustomToolInAllProperties_ReturnsCustomToolProperty() + { + CreateProjectItemProperties(); + + var projectItemProperties = new List(properties); + var property = projectItemProperties.Find(p => p.Name == "CustomTool"); + + Assert.AreEqual("CustomTool", property.Name); + } } } diff --git a/src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/PropertyTests.cs b/src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/ProjectPropertyTests.cs similarity index 91% rename from src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/PropertyTests.cs rename to src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/ProjectPropertyTests.cs index 9241800ea8..df16142c61 100644 --- a/src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/PropertyTests.cs +++ b/src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/ProjectPropertyTests.cs @@ -9,7 +9,7 @@ using PackageManagement.Tests.Helpers; namespace PackageManagement.Tests.EnvDTE { [TestFixture] - public class PropertyTests + public class ProjectPropertyTests { Properties properties; TestableDTEProject project; @@ -75,7 +75,7 @@ namespace PackageManagement.Tests.EnvDTE } [Test] - public void ItemValue_SetPostBuildEvent_MSBuildProjectIsSaved() + public void Value_SetPostBuildEvent_MSBuildProjectIsSaved() { CreateProperties(); properties.Item("PostBuildEvent").Value = "test"; @@ -86,7 +86,7 @@ namespace PackageManagement.Tests.EnvDTE } [Test] - public void ItemValue_GetTargetFrameworkMoniker_ReturnsNet40ClientProfile() + public void Value_GetTargetFrameworkMoniker_ReturnsNet40ClientProfile() { CreateProperties(); msbuildProject.SetProperty("TargetFrameworkVersion", "4.0"); @@ -100,7 +100,7 @@ namespace PackageManagement.Tests.EnvDTE } [Test] - public void ItemValue_GetTargetFrameworkMonikerUsingIncorrectCaseAndFrameworkIdentifierIsSilverlight_ReturnsNet35Silverlight() + public void Value_GetTargetFrameworkMonikerUsingIncorrectCaseAndFrameworkIdentifierIsSilverlight_ReturnsNet35Silverlight() { CreateProperties(); msbuildProject.SetProperty("TargetFrameworkIdentifier", "Silverlight");