Browse Source

Implement EnvDTE.CodeFunction.Type.

pull/28/head
Matt Ward 13 years ago
parent
commit
30775a50a0
  1. 4
      src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/CodeFunction.cs
  2. 27
      src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/CodeFunctionTests.cs
  3. 9
      src/AddIns/Misc/PackageManagement/Test/Src/Helpers/MethodHelper.cs

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

@ -54,5 +54,9 @@ namespace ICSharpCode.PackageManagement.EnvDTE @@ -54,5 +54,9 @@ namespace ICSharpCode.PackageManagement.EnvDTE
public virtual CodeElements Parameters {
get { return new CodeParameters(method.ProjectContent, method.Parameters); }
}
public virtual CodeTypeRef2 Type {
get { return new CodeTypeRef2(method.ProjectContent, null, method.ReturnType); }
}
}
}

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

@ -59,6 +59,11 @@ namespace PackageManagement.Tests.EnvDTE @@ -59,6 +59,11 @@ namespace PackageManagement.Tests.EnvDTE
helper.AddParameter(type, name);
}
void AddReturnTypeToMethod(string type)
{
helper.AddReturnTypeToMethod(type);
}
[Test]
public void Access_PublicFunction_ReturnsPublic()
{
@ -197,5 +202,27 @@ namespace PackageManagement.Tests.EnvDTE @@ -197,5 +202,27 @@ namespace PackageManagement.Tests.EnvDTE
Assert.AreEqual("string", parameter.Type.AsString);
}
[Test]
public void Type_MethodReturnsString_TypeRefHasSystemStringAsFullName()
{
CreatePublicFunction("MyClass.MyFunction");
AddReturnTypeToMethod("System.String");
CodeTypeRef2 typeRef = codeFunction.Type;
Assert.AreEqual("System.String", typeRef.AsFullName);
}
[Test]
public void Type_MethodReturnsString_TypeRefUsesProjectContentFromMethod()
{
CreatePublicFunction("MyClass.MyFunction");
AddReturnTypeToMethod("System.String");
CodeTypeRef2 typeRef = codeFunction.Type;
Assert.AreEqual("string", typeRef.AsString);
}
}
}

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

@ -103,5 +103,14 @@ namespace PackageManagement.Tests.Helpers @@ -103,5 +103,14 @@ namespace PackageManagement.Tests.Helpers
IClass declaringType = ProjectContentHelper.AddClassToProjectContent(name);
SetDeclaringType(declaringType);
}
public void AddReturnTypeToMethod(string type)
{
var returnTypeHelper = new ReturnTypeHelper();
returnTypeHelper.CreateReturnType(type);
returnTypeHelper.AddDotNetName(type);
Method.Stub(m => m.ReturnType).Return(returnTypeHelper.ReturnType);
}
}
}

Loading…
Cancel
Save