From 166f0b86cf4a368b91a4248fd7ddca701c354f62 Mon Sep 17 00:00:00 2001 From: Matt Ward Date: Sun, 5 Jan 2014 17:35:26 +0000 Subject: [PATCH] Return correct EnvDTE.CodeClass2.ClassKind for a partial class. --- .../Project/Src/EnvDTE/CodeClass2.cs | 16 +++------ .../Test/Src/EnvDTE/CodeClass2Tests.cs | 33 +++++++++---------- 2 files changed, 20 insertions(+), 29 deletions(-) diff --git a/src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/CodeClass2.cs b/src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/CodeClass2.cs index 0a6d9d8d47..25b3756b16 100644 --- a/src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/CodeClass2.cs +++ b/src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/CodeClass2.cs @@ -17,15 +17,7 @@ namespace ICSharpCode.PackageManagement.EnvDTE public global::EnvDTE.CodeElements PartialClasses { get { var partialClasses = new CodeElementsList(); -// ITypeDefinition typeDefinition = typeModel.Resolve(); -// if (typeDefinition != null) { -// foreach (string fileName in typeDefinition.Parts.Select(p => p.UnresolvedFile.FileName).Distinct()) { -// CodeModelContext newContext = context.WithFilteredFileName(fileName); -// list.Add(CodeType.Create(newContext, typeDefinition)); -// } -// } else { - partialClasses.Add(this); -// } + partialClasses.Add(this); return partialClasses; } } @@ -36,9 +28,9 @@ namespace ICSharpCode.PackageManagement.EnvDTE public global::EnvDTE.vsCMClassKind ClassKind { get { - //if (typeDefinition.IsPartial) { - // return global::EnvDTE.vsCMClassKind.vsCMClassKindPartialClass; - //} + if (typeDefinition.Parts.First().IsPartial) { + return global::EnvDTE.vsCMClassKind.vsCMClassKindPartialClass; + } return global::EnvDTE.vsCMClassKind.vsCMClassKindMainClass; } set { diff --git a/src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/CodeClass2Tests.cs b/src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/CodeClass2Tests.cs index aaabc6f9f7..2638b7f689 100644 --- a/src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/CodeClass2Tests.cs +++ b/src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/CodeClass2Tests.cs @@ -248,18 +248,16 @@ namespace PackageManagement.Tests.EnvDTE Assert.IsFalse(isAbstract); } -// -// [Test] -// public void ClassKind_ClassIsPartial_ReturnsPartialClassKind() -// { -// CreateProjectContent(); -// CreatePublicClass("MyClass"); -// ClassIsPartial(); -// -// global::EnvDTE.vsCMClassKind kind = codeClass.ClassKind; -// -// Assert.AreEqual(global::EnvDTE.vsCMClassKind.vsCMClassKindPartialClass, kind); -// } + + [Test] + public void ClassKind_ClassIsPartial_ReturnsPartialClassKind() + { + CreateClass("public partial class MyClass {}"); + + global::EnvDTE.vsCMClassKind kind = codeClass.ClassKind; + + Assert.AreEqual(global::EnvDTE.vsCMClassKind.vsCMClassKindPartialClass, kind); + } [Test] public void ClassKind_ClassIsNotPartial_ReturnsMainClassKind() @@ -290,17 +288,18 @@ namespace PackageManagement.Tests.EnvDTE Assert.IsFalse(generic); } -// -// [Test] -// public void ClassKind_ChangeClassToBePartial_UsesClassKindUpdaterToModifyClass() -// { + + [Test] + [Ignore("TODO - Not yet implemented")] + public void ClassKind_ChangeClassToBePartial_UsesClassKindUpdaterToModifyClass() + { // CreateProjectContent(); // CreatePublicClass("MyClass"); // // codeClass.ClassKind = global::EnvDTE.vsCMClassKind.vsCMClassKindPartialClass; // // classKindUpdater.AssertWasCalled(updater => updater.MakeClassPartial()); -// } + } [Test] public void ClassKind_ChangeClassToBeMainClass_ThrowsNotImplementedException()