From db529dc71147a327dbaf5e06b4c0059cf36ebb99 Mon Sep 17 00:00:00 2001 From: Matt Ward Date: Wed, 17 Oct 2012 21:22:48 +0100 Subject: [PATCH] Implement EnvDTE.ProjectItems.Kind Determines whether the project items refer to a folder or file. --- .../Project/Src/EnvDTE/FileProjectItems.cs | 4 +++ .../Project/Src/EnvDTE/ProjectItems.cs | 2 +- .../Test/Src/EnvDTE/ProjectItemsTests.cs | 27 ++++++++++++++++++- 3 files changed, 31 insertions(+), 2 deletions(-) diff --git a/src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/FileProjectItems.cs b/src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/FileProjectItems.cs index 6d4cb1136e..e18f42de5e 100644 --- a/src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/FileProjectItems.cs +++ b/src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/FileProjectItems.cs @@ -63,5 +63,9 @@ namespace ICSharpCode.PackageManagement.EnvDTE { return Project.AddFileProjectItemWithDependentUsingFullPath(fileName, projectItem.Name); } + + public override string Kind { + get { return global::EnvDTE.Constants.vsProjectItemKindPhysicalFile; } + } } } diff --git a/src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/ProjectItems.cs b/src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/ProjectItems.cs index 12706fb2b5..6a4347d7a0 100644 --- a/src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/ProjectItems.cs +++ b/src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/ProjectItems.cs @@ -139,7 +139,7 @@ namespace ICSharpCode.PackageManagement.EnvDTE } public virtual string Kind { - get { throw new NotImplementedException(); } + get { return global::EnvDTE.Constants.vsProjectItemKindPhysicalFolder; } } } } diff --git a/src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/ProjectItemsTests.cs b/src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/ProjectItemsTests.cs index 3e953cd48d..3ab65690e4 100644 --- a/src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/ProjectItemsTests.cs +++ b/src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/ProjectItemsTests.cs @@ -5,10 +5,10 @@ using System; using System.Collections; using System.Collections.Generic; using System.Linq; - using ICSharpCode.PackageManagement; using ICSharpCode.PackageManagement.EnvDTE; using ICSharpCode.SharpDevelop.Project; +using Microsoft.VisualStudio; using NUnit.Framework; using PackageManagement.Tests.Helpers; using Rhino.Mocks; @@ -363,6 +363,31 @@ namespace PackageManagement.Tests.EnvDTE Assert.AreEqual("Program.cs", projectItemName); } + [Test] + public void Kind_FileProjectItems_ReturnsItemKindPhysicalFile() + { + CreateProjectItems(); + msbuildProject.AddFile("program.cs"); + + string kind = projectItems + .Item("program.cs") + .ProjectItems + .Kind; + + Assert.AreEqual(global::EnvDTE.Constants.vsProjectItemKindPhysicalFile, kind); + } + + [Test] + public void Kind_ProjectItemsForProject_ReturnsItemKindPhysicalFolder() + { + CreateProjectItems(); + msbuildProject.AddFile("program.cs"); + + string kind = projectItems.Kind; + + Assert.AreEqual(global::EnvDTE.Constants.vsProjectItemKindPhysicalFolder, kind); + } + [Test] public void AddFileFromCopy_FileAlreadyExistsOnFileSystem_ThrowsException() {