Browse Source

Support updating a project item's CustomTool with a PowerShell script.

pull/15/head
Matt Ward 15 years ago
parent
commit
d507dfeccf
  1. 5
      src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/ProjectItem.cs
  2. 1
      src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/ProjectItemPropertyFactory.cs
  3. 2
      src/AddIns/Misc/PackageManagement/Test/PackageManagement.Tests.csproj
  4. 35
      src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/ProjectItemPropertyTests.cs
  5. 8
      src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/ProjectPropertyTests.cs

5
src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/ProjectItem.cs

@ -13,6 +13,7 @@ namespace ICSharpCode.PackageManagement.EnvDTE @@ -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 @@ -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 @@ -51,6 +54,8 @@ namespace ICSharpCode.PackageManagement.EnvDTE
{
if (name == CopyToOutputDirectoryPropertyName) {
SetCopyToOutputDirectory(value);
} else if (name == CustomToolPropertyName) {
projectItem.CustomTool = value as string;
}
}

1
src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/ProjectItemPropertyFactory.cs

@ -23,6 +23,7 @@ namespace ICSharpCode.PackageManagement.EnvDTE @@ -23,6 +23,7 @@ namespace ICSharpCode.PackageManagement.EnvDTE
public IEnumerator<Property> GetEnumerator()
{
yield return new ProjectItemProperty(projectItem, ProjectItem.CopyToOutputDirectoryPropertyName);
yield return new ProjectItemProperty(projectItem, "CustomTool");
}
}
}

2
src/AddIns/Misc/PackageManagement/Test/PackageManagement.Tests.csproj

@ -75,7 +75,7 @@ @@ -75,7 +75,7 @@
<Compile Include="Src\EnvDTE\ProjectItemPropertyTests.cs" />
<Compile Include="Src\EnvDTE\ProjectItemsTests.cs" />
<Compile Include="Src\EnvDTE\ProjectTests.cs" />
<Compile Include="Src\EnvDTE\PropertyTests.cs" />
<Compile Include="Src\EnvDTE\ProjectPropertyTests.cs" />
<Compile Include="Src\EnvDTE\ReferencesTests.cs" />
<Compile Include="Src\EnvDTE\ReferenceTests.cs" />
<Compile Include="Src\Helpers\ExceptionThrowingPackageManagementProject.cs" />

35
src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/ProjectItemPropertyTests.cs

@ -91,6 +91,29 @@ namespace PackageManagement.Tests.EnvDTE @@ -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 @@ -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 @@ -112,5 +134,16 @@ namespace PackageManagement.Tests.EnvDTE
AssertContainsProperty("CopyToOutputDirectory", projectItemProperties);
}
[Test]
public void GetEnumerator_FindCustomToolInAllProperties_ReturnsCustomToolProperty()
{
CreateProjectItemProperties();
var projectItemProperties = new List<Property>(properties);
var property = projectItemProperties.Find(p => p.Name == "CustomTool");
Assert.AreEqual("CustomTool", property.Name);
}
}
}

8
src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/PropertyTests.cs → src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/ProjectPropertyTests.cs

@ -9,7 +9,7 @@ using PackageManagement.Tests.Helpers; @@ -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 @@ -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 @@ -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 @@ -100,7 +100,7 @@ namespace PackageManagement.Tests.EnvDTE
}
[Test]
public void ItemValue_GetTargetFrameworkMonikerUsingIncorrectCaseAndFrameworkIdentifierIsSilverlight_ReturnsNet35Silverlight()
public void Value_GetTargetFrameworkMonikerUsingIncorrectCaseAndFrameworkIdentifierIsSilverlight_ReturnsNet35Silverlight()
{
CreateProperties();
msbuildProject.SetProperty("TargetFrameworkIdentifier", "Silverlight");
Loading…
Cancel
Save