Browse Source

Implement EnvDTE.CodeFunction.Attributes

The T4MVC template checks method attributes.
pull/28/head
Matt Ward 13 years ago
parent
commit
b17aa07a6d
  1. 2
      src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/CodeFunction.cs
  2. 18
      src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/CodeFunctionTests.cs
  3. 11
      src/AddIns/Misc/PackageManagement/Test/Src/Helpers/AttributeHelper.cs
  4. 4
      src/AddIns/Misc/PackageManagement/Test/Src/Helpers/ClassHelper.cs
  5. 7
      src/AddIns/Misc/PackageManagement/Test/Src/Helpers/MethodHelper.cs

2
src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/CodeFunction.cs

@ -60,7 +60,7 @@ namespace ICSharpCode.PackageManagement.EnvDTE @@ -60,7 +60,7 @@ namespace ICSharpCode.PackageManagement.EnvDTE
}
public virtual CodeElements Attributes {
get { throw new NotImplementedException(); }
get { return new CodeAttributes(method); }
}
public virtual bool CanOverride {

18
src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/CodeFunctionTests.cs

@ -85,6 +85,11 @@ namespace PackageManagement.Tests.EnvDTE @@ -85,6 +85,11 @@ namespace PackageManagement.Tests.EnvDTE
helper.MakeMethodVirtual();
}
void AddMethodAttribute(string attributeTypeName)
{
helper.AddAttributeToMethod(attributeTypeName);
}
[Test]
public void Access_PublicFunction_ReturnsPublic()
{
@ -361,5 +366,18 @@ namespace PackageManagement.Tests.EnvDTE @@ -361,5 +366,18 @@ namespace PackageManagement.Tests.EnvDTE
Assert.IsTrue(canOverride);
}
[Test]
public void Attributes_MethodHasOneAttribute_ReturnsOneAttribute()
{
CreatePublicFunction("MyClass.MyFunction");
AddMethodAttribute("System.ObsoleteAttribute");
CodeElements attributes = codeFunction.Attributes;
CodeAttribute2 attribute = attributes.FirstCodeAttribute2OrDefault();
Assert.AreEqual(1, attributes.Count);
Assert.AreEqual("System.ObsoleteAttribute", attribute.FullName);
}
}
}

11
src/AddIns/Misc/PackageManagement/Test/Src/Helpers/AttributeHelper.cs

@ -43,11 +43,18 @@ namespace PackageManagement.Tests.Helpers @@ -43,11 +43,18 @@ namespace PackageManagement.Tests.Helpers
NamedArguments.Add(name, value);
}
public void AddAttributeToClass(IClass @class)
public void AddAttributeToClass(IClass c)
{
var attributes = new List<IAttribute>();
attributes.Add(Attribute);
@class.Stub(c => c.Attributes).Return(attributes);
c.Stub(item => item.Attributes).Return(attributes);
}
public void AddAttributeToMethod(IMethod method)
{
var attributes = new List<IAttribute>();
attributes.Add(Attribute);
method.Stub(m => m.Attributes).Return(attributes);
}
}
}

4
src/AddIns/Misc/PackageManagement/Test/Src/Helpers/ClassHelper.cs

@ -33,10 +33,10 @@ namespace PackageManagement.Tests.Helpers @@ -33,10 +33,10 @@ namespace PackageManagement.Tests.Helpers
Class.Stub(c => c.CompilationUnit).Return(CompilationUnitHelper.CompilationUnit);
}
public void AddAttributeToClass(string name)
public void AddAttributeToClass(string attributeTypeName)
{
var attributeHelper = new AttributeHelper();
attributeHelper.CreateAttribute(name);
attributeHelper.CreateAttribute(attributeTypeName);
attributeHelper.AddAttributeToClass(Class);
}

7
src/AddIns/Misc/PackageManagement/Test/Src/Helpers/MethodHelper.cs

@ -133,5 +133,12 @@ namespace PackageManagement.Tests.Helpers @@ -133,5 +133,12 @@ namespace PackageManagement.Tests.Helpers
{
Method.Stub(m => m.IsVirtual).Return(true);
}
public void AddAttributeToMethod(string attributeTypeName)
{
var attributeHelper = new AttributeHelper();
attributeHelper.CreateAttribute(attributeTypeName);
attributeHelper.AddAttributeToMethod(Method);
}
}
}

Loading…
Cancel
Save