Browse Source

Update EnvDTE.CodeParameter2 tests.

pull/375/head
Matt Ward 12 years ago
parent
commit
43bffe6e32
  1. 17
      src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/CodeParameter2.cs
  2. 2
      src/AddIns/Misc/PackageManagement/Test/PackageManagement.Tests.csproj
  3. 234
      src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/CodeParameter2Tests.cs
  4. 51
      src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/CodeParameterTests.cs
  5. 51
      src/AddIns/Misc/PackageManagement/Test/Src/Helpers/ParameterHelper.cs

17
src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/CodeParameter2.cs

@ -20,21 +20,18 @@ namespace ICSharpCode.PackageManagement.EnvDTE
global::EnvDTE.vsCMParameterKind GetParameterKind() global::EnvDTE.vsCMParameterKind GetParameterKind()
{ {
global::EnvDTE.vsCMParameterKind kind = 0; global::EnvDTE.vsCMParameterKind kind = global::EnvDTE.vsCMParameterKind.vsCMParameterKindNone;
if (parameter.IsOptional) { if (parameter.IsOptional) {
kind |= global::EnvDTE.vsCMParameterKind.vsCMParameterKindOptional; return global::EnvDTE.vsCMParameterKind.vsCMParameterKindOptional;
} }
if (parameter.IsOut) { if (parameter.IsOut) {
kind |= global::EnvDTE.vsCMParameterKind.vsCMParameterKindOut; return global::EnvDTE.vsCMParameterKind.vsCMParameterKindOut;
} }
if (parameter.IsRef) { if (parameter.IsRef) {
kind |= global::EnvDTE.vsCMParameterKind.vsCMParameterKindRef; return global::EnvDTE.vsCMParameterKind.vsCMParameterKindRef;
} }
if (parameter.IsParams) { if (parameter.IsParams) {
kind |= global::EnvDTE.vsCMParameterKind.vsCMParameterKindParamArray; return global::EnvDTE.vsCMParameterKind.vsCMParameterKindParamArray;
}
if (!(parameter.IsOut || parameter.IsRef)) {
kind |= global::EnvDTE.vsCMParameterKind.vsCMParameterKindIn;
} }
return kind; return kind;
} }

2
src/AddIns/Misc/PackageManagement/Test/PackageManagement.Tests.csproj

@ -99,7 +99,6 @@
</Compile> </Compile>
<Compile Include="Src\EnvDTE\CodeNamespaceTests.cs" /> <Compile Include="Src\EnvDTE\CodeNamespaceTests.cs" />
<Compile Include="Src\EnvDTE\CodeParameter2Tests.cs" /> <Compile Include="Src\EnvDTE\CodeParameter2Tests.cs" />
<Compile Include="Src\EnvDTE\CodeParameterTests.cs" />
<Compile Include="Src\EnvDTE\CodeProperty2Tests.cs" /> <Compile Include="Src\EnvDTE\CodeProperty2Tests.cs" />
<Compile Include="Src\EnvDTE\CodeStructTests.cs" /> <Compile Include="Src\EnvDTE\CodeStructTests.cs" />
<Compile Include="Src\EnvDTE\CodeTypeRef2Tests.cs" /> <Compile Include="Src\EnvDTE\CodeTypeRef2Tests.cs" />
@ -127,7 +126,6 @@
<Compile Include="Src\Helpers\MethodHelper.cs" /> <Compile Include="Src\Helpers\MethodHelper.cs" />
<Compile Include="Src\Helpers\MethodOrPropertyHelper.cs" /> <Compile Include="Src\Helpers\MethodOrPropertyHelper.cs" />
<Compile Include="Src\Helpers\PackageOperationHelper.cs" /> <Compile Include="Src\Helpers\PackageOperationHelper.cs" />
<Compile Include="Src\Helpers\ParameterHelper.cs" />
<Compile Include="Src\Helpers\ProjectContentHelper.cs" /> <Compile Include="Src\Helpers\ProjectContentHelper.cs" />
<Compile Include="Src\Helpers\PropertiesHelper.cs" /> <Compile Include="Src\Helpers\PropertiesHelper.cs" />
<Compile Include="Src\Helpers\ReturnTypeHelper.cs" /> <Compile Include="Src\Helpers\ReturnTypeHelper.cs" />

234
src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/CodeParameter2Tests.cs

@ -1,93 +1,141 @@
//// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt) // Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
//// This code is distributed under the GNU LGPL (for details please see \doc\license.txt) // This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
//
//using System; using System;
//using ICSharpCode.PackageManagement.EnvDTE; using System.Linq;
//using NUnit.Framework; using ICSharpCode.NRefactory.TypeSystem;
//using PackageManagement.Tests.Helpers; using ICSharpCode.PackageManagement.EnvDTE;
// using ICSharpCode.SharpDevelop.Dom;
//namespace PackageManagement.Tests.EnvDTE using NUnit.Framework;
//{ using PackageManagement.Tests.Helpers;
// [TestFixture]
// public class CodeParameter2Tests namespace PackageManagement.Tests.EnvDTE
// { {
// ParameterHelper helper; [TestFixture]
// CodeParameter2 parameter; public class CodeParameter2Tests : CodeModelTestBase
// {
// [SetUp] CodeParameter2 parameter;
// public void Init()
// { void CreateParameter(string code)
// helper = new ParameterHelper(); {
// } AddCodeFile("class.cs", code);
// IMethod method = assemblyModel
// void CreateParameter() .TopLevelTypeDefinitions
// { .First()
// parameter = new CodeParameter2(null, helper.Parameter); .Members
// } .First()
// .Resolve() as IMethod;
// [Test]
// public void ParameterKind_NormalParameter_ReturnsNone() IParameter member = method.Parameters.First();
// { parameter = new CodeParameter2(codeModelContext, member);
// CreateParameter(); }
//
// global::EnvDTE.vsCMParameterKind kind = parameter.ParameterKind; [Test]
// public void ParameterKind_NormalParameter_ReturnsNone()
// Assert.AreEqual(global::EnvDTE.vsCMParameterKind.vsCMParameterKindNone, kind); {
// } CreateParameter(
// "public class MyClass {\r\n" +
// [Test] " public void MyMethod(int parameter) {}\r\n" +
// public void ParameterKind_OptionalParameter_ReturnsOptional() "}");
// {
// CreateParameter(); global::EnvDTE.vsCMParameterKind kind = parameter.ParameterKind;
// helper.MakeOptionalParameter();
// Assert.AreEqual(global::EnvDTE.vsCMParameterKind.vsCMParameterKindNone, kind);
// global::EnvDTE.vsCMParameterKind kind = parameter.ParameterKind; }
//
// Assert.AreEqual(global::EnvDTE.vsCMParameterKind.vsCMParameterKindOptional, kind); [Test]
// } public void ParameterKind_OptionalParameter_ReturnsOptional()
// {
// [Test] CreateParameter(
// public void ParameterKind_OutParameter_ReturnsOut() "public class MyClass {\r\n" +
// { " public void MyMethod(int parameter = 0) {}\r\n" +
// CreateParameter(); "}");
// helper.MakeOutParameter();
// global::EnvDTE.vsCMParameterKind kind = parameter.ParameterKind;
// global::EnvDTE.vsCMParameterKind kind = parameter.ParameterKind;
// Assert.AreEqual(global::EnvDTE.vsCMParameterKind.vsCMParameterKindOptional, kind);
// Assert.AreEqual(global::EnvDTE.vsCMParameterKind.vsCMParameterKindOut, kind); }
// }
// [Test]
// [Test] public void ParameterKind_OutParameter_ReturnsOut()
// public void ParameterKind_RefParameter_ReturnsRef() {
// { CreateParameter(
// CreateParameter(); "public class MyClass {\r\n" +
// helper.MakeRefParameter(); " public void MyMethod(out int parameter) { parameter = 2; }\r\n" +
// "}");
// global::EnvDTE.vsCMParameterKind kind = parameter.ParameterKind;
// global::EnvDTE.vsCMParameterKind kind = parameter.ParameterKind;
// Assert.AreEqual(global::EnvDTE.vsCMParameterKind.vsCMParameterKindRef, kind);
// } Assert.AreEqual(global::EnvDTE.vsCMParameterKind.vsCMParameterKindOut, kind);
// }
// [Test]
// public void ParameterKind_ParamArrayParameter_ReturnsParamArray() [Test]
// { public void ParameterKind_RefParameter_ReturnsRef()
// CreateParameter(); {
// helper.MakeParamArrayParameter(); CreateParameter(
// "public class MyClass {\r\n" +
// global::EnvDTE.vsCMParameterKind kind = parameter.ParameterKind; " public void MyMethod(ref int parameter) {}\r\n" +
// "}");
// Assert.AreEqual(global::EnvDTE.vsCMParameterKind.vsCMParameterKindParamArray, kind);
// } global::EnvDTE.vsCMParameterKind kind = parameter.ParameterKind;
//
// [Test] Assert.AreEqual(global::EnvDTE.vsCMParameterKind.vsCMParameterKindRef, kind);
// public void ParameterKind_InParameter_ReturnsIn() }
// {
// CreateParameter(); [Test]
// helper.MakeInParameter(); public void ParameterKind_ParamArrayParameter_ReturnsParamArray()
// {
// global::EnvDTE.vsCMParameterKind kind = parameter.ParameterKind; CreateParameter(
// "public class MyClass {\r\n" +
// Assert.AreEqual(global::EnvDTE.vsCMParameterKind.vsCMParameterKindIn, kind); " public void MyMethod(params int[] parameters) {}\r\n" +
// } "}");
// }
//} global::EnvDTE.vsCMParameterKind kind = parameter.ParameterKind;
Assert.AreEqual(global::EnvDTE.vsCMParameterKind.vsCMParameterKindParamArray, kind);
}
[Test]
[Ignore("Not supported by NRefactory. Maps to VB.NET's ByVal. For C# vsCMParameterKindNone is returned.")]
public void ParameterKind_InParameter_ReturnsIn()
{
CreateParameter(
"public class MyClass {\r\n" +
" public void MyMethod(int parameter) {}\r\n" +
"}");
global::EnvDTE.vsCMParameterKind kind = parameter.ParameterKind;
Assert.AreEqual(global::EnvDTE.vsCMParameterKind.vsCMParameterKindIn, kind);
}
[Test]
public void Kind_Parameter_ReturnsParameter()
{
CreateParameter(
"public class MyClass {\r\n" +
" public void MyMethod(int parameter) {}\r\n" +
"}");
global::EnvDTE.vsCMElement kind = parameter.Kind;
Assert.AreEqual(global::EnvDTE.vsCMElement.vsCMElementParameter, kind);
}
[Test]
public void Attributes_ParameterHasOneAttribute_ReturnsOneAttribute()
{
CreateParameter(
"using System;\r\n" +
"public class MyClass {\r\n" +
" public void MyMethod([Obsolete] int parameter) {}\r\n" +
"}");
global::EnvDTE.CodeElements attributes = parameter.Attributes;
CodeAttribute2 attribute = parameter.Attributes.FirstCodeAttribute2OrDefault();
Assert.AreEqual(1, attributes.Count);
Assert.AreEqual("System.ObsoleteAttribute", attribute.FullName);
}
}
}

51
src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/CodeParameterTests.cs

@ -1,51 +0,0 @@
//// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
//// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
//
//using System;
//using ICSharpCode.PackageManagement.EnvDTE;
//using NUnit.Framework;
//using PackageManagement.Tests.Helpers;
//
//namespace PackageManagement.Tests.EnvDTE
//{
// [TestFixture]
// public class CodeParameterTests
// {
// ParameterHelper helper;
// CodeParameter parameter;
//
// [SetUp]
// public void Init()
// {
// helper = new ParameterHelper();
// }
//
// void CreateParameter()
// {
// parameter = new CodeParameter(null, helper.Parameter);
// }
//
// [Test]
// public void Kind_Parameter_ReturnsParameter()
// {
// CreateParameter();
//
// global::EnvDTE.vsCMElement kind = parameter.Kind;
//
// Assert.AreEqual(global::EnvDTE.vsCMElement.vsCMElementParameter, kind);
// }
//
// [Test]
// public void Attributes_ParameterHasOneAttribute_ReturnsOneAttribute()
// {
// CreateParameter();
// helper.AddAttributeToParameter("System.Web.Mvc.BindAttribute");
//
// global::EnvDTE.CodeElements attributes = parameter.Attributes;
//
// CodeAttribute2 attribute = parameter.Attributes.FirstCodeAttribute2OrDefault();
// Assert.AreEqual(1, attributes.Count);
// Assert.AreEqual("System.Web.Mvc.BindAttribute", attribute.FullName);
// }
// }
//}

51
src/AddIns/Misc/PackageManagement/Test/Src/Helpers/ParameterHelper.cs

@ -1,51 +0,0 @@
//// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
//// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
//
//using System;
//using ICSharpCode.SharpDevelop.Dom;
//using Rhino.Mocks;
//
//namespace PackageManagement.Tests.Helpers
//{
// public class ParameterHelper
// {
// public IParameter Parameter;
//
// public ParameterHelper()
// {
// Parameter = MockRepository.GenerateStub<IParameter>();
// }
//
// public void MakeOptionalParameter()
// {
// Parameter.Stub(p => p.IsOptional).Return(true);
// }
//
// public void MakeOutParameter()
// {
// Parameter.Stub(p => p.IsOut).Return(true);
// }
//
// public void MakeRefParameter()
// {
// Parameter.Stub(p => p.IsRef).Return(true);
// }
//
// public void MakeParamArrayParameter()
// {
// Parameter.Stub(p => p.IsParams).Return(true);
// }
//
// public void MakeInParameter()
// {
// Parameter.Stub(p => p.Modifiers).Return(ParameterModifiers.In);
// }
//
// public void AddAttributeToParameter(string attributeTypeName)
// {
// var attributeHelper = new AttributeHelper();
// attributeHelper.CreateAttribute(attributeTypeName);
// attributeHelper.AddAttributeToParameter(Parameter);
// }
// }
//}
Loading…
Cancel
Save