Browse Source

Return correct EnvDTE.CodeClass2.ClassKind for a partial class.

pull/375/head
Matt Ward 12 years ago
parent
commit
166f0b86cf
  1. 16
      src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/CodeClass2.cs
  2. 33
      src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/CodeClass2Tests.cs

16
src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/CodeClass2.cs

@ -17,15 +17,7 @@ namespace ICSharpCode.PackageManagement.EnvDTE @@ -17,15 +17,7 @@ namespace ICSharpCode.PackageManagement.EnvDTE
public global::EnvDTE.CodeElements PartialClasses {
get {
var partialClasses = new CodeElementsList<CodeType>();
// 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 @@ -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 {

33
src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/CodeClass2Tests.cs

@ -248,18 +248,16 @@ namespace PackageManagement.Tests.EnvDTE @@ -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 @@ -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()

Loading…
Cancel
Save