Browse Source

Support getting project item by name in PowerShell scripts.

pull/15/head
Matt Ward 15 years ago
parent
commit
7e6b16229b
  1. 15
      src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/ProjectItems.cs
  2. 24
      src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/ProjectItemsTests.cs

15
src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/ProjectItems.cs

@ -48,5 +48,20 @@ namespace ICSharpCode.PackageManagement.EnvDTE @@ -48,5 +48,20 @@ namespace ICSharpCode.PackageManagement.EnvDTE
{
return GetEnumerator();
}
public ProjectItem Item(string name)
{
foreach (ProjectItem item in this) {
if (IsMatch(item, name)) {
return item;
}
}
return null;
}
bool IsMatch(ProjectItem item, string name)
{
return String.Equals(item.Name, name, StringComparison.InvariantCultureIgnoreCase);
}
}
}

24
src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/ProjectItemsTests.cs

@ -300,5 +300,29 @@ namespace PackageManagement.Tests.EnvDTE @@ -300,5 +300,29 @@ namespace PackageManagement.Tests.EnvDTE
ProjectItemCollectionAssertAreEqual(expectedItems, enumerable);
}
[Test]
public void Item_GetProjectItemByName_ReturnsFileInsideProject()
{
CreateProjectItems();
msbuildProject.AddFile("Program.cs");
var projectItem = projectItems.Item("Program.cs") as DTE.ProjectItem;
string projectItemName = projectItem.Name;
Assert.AreEqual("Program.cs", projectItemName);
}
[Test]
public void Item_GetProjectItemByNameWhenNameCaseDoesNotMatchFileNameInProject_ReturnsFileInsideProject()
{
CreateProjectItems();
msbuildProject.AddFile("Program.cs");
var projectItem = projectItems.Item("PROGRAM.CS") as DTE.ProjectItem;
string projectItemName = projectItem.Name;
Assert.AreEqual("Program.cs", projectItemName);
}
}
}

Loading…
Cancel
Save