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

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

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

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

@ -1,93 +1,141 @@ @@ -1,93 +1,141 @@
//// 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 CodeParameter2Tests
// {
// ParameterHelper helper;
// CodeParameter2 parameter;
//
// [SetUp]
// public void Init()
// {
// helper = new ParameterHelper();
// }
//
// void CreateParameter()
// {
// parameter = new CodeParameter2(null, helper.Parameter);
// }
//
// [Test]
// public void ParameterKind_NormalParameter_ReturnsNone()
// {
// CreateParameter();
//
// global::EnvDTE.vsCMParameterKind kind = parameter.ParameterKind;
//
// Assert.AreEqual(global::EnvDTE.vsCMParameterKind.vsCMParameterKindNone, kind);
// }
//
// [Test]
// public void ParameterKind_OptionalParameter_ReturnsOptional()
// {
// CreateParameter();
// helper.MakeOptionalParameter();
//
// global::EnvDTE.vsCMParameterKind kind = parameter.ParameterKind;
//
// Assert.AreEqual(global::EnvDTE.vsCMParameterKind.vsCMParameterKindOptional, kind);
// }
//
// [Test]
// public void ParameterKind_OutParameter_ReturnsOut()
// {
// CreateParameter();
// helper.MakeOutParameter();
//
// global::EnvDTE.vsCMParameterKind kind = parameter.ParameterKind;
//
// Assert.AreEqual(global::EnvDTE.vsCMParameterKind.vsCMParameterKindOut, kind);
// }
//
// [Test]
// public void ParameterKind_RefParameter_ReturnsRef()
// {
// CreateParameter();
// helper.MakeRefParameter();
//
// global::EnvDTE.vsCMParameterKind kind = parameter.ParameterKind;
//
// Assert.AreEqual(global::EnvDTE.vsCMParameterKind.vsCMParameterKindRef, kind);
// }
//
// [Test]
// public void ParameterKind_ParamArrayParameter_ReturnsParamArray()
// {
// CreateParameter();
// helper.MakeParamArrayParameter();
//
// global::EnvDTE.vsCMParameterKind kind = parameter.ParameterKind;
//
// Assert.AreEqual(global::EnvDTE.vsCMParameterKind.vsCMParameterKindParamArray, kind);
// }
//
// [Test]
// public void ParameterKind_InParameter_ReturnsIn()
// {
// CreateParameter();
// helper.MakeInParameter();
//
// global::EnvDTE.vsCMParameterKind kind = parameter.ParameterKind;
//
// Assert.AreEqual(global::EnvDTE.vsCMParameterKind.vsCMParameterKindIn, kind);
// }
// }
//}
// 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 System.Linq;
using ICSharpCode.NRefactory.TypeSystem;
using ICSharpCode.PackageManagement.EnvDTE;
using ICSharpCode.SharpDevelop.Dom;
using NUnit.Framework;
using PackageManagement.Tests.Helpers;
namespace PackageManagement.Tests.EnvDTE
{
[TestFixture]
public class CodeParameter2Tests : CodeModelTestBase
{
CodeParameter2 parameter;
void CreateParameter(string code)
{
AddCodeFile("class.cs", code);
IMethod method = assemblyModel
.TopLevelTypeDefinitions
.First()
.Members
.First()
.Resolve() as IMethod;
IParameter member = method.Parameters.First();
parameter = new CodeParameter2(codeModelContext, member);
}
[Test]
public void ParameterKind_NormalParameter_ReturnsNone()
{
CreateParameter(
"public class MyClass {\r\n" +
" public void MyMethod(int parameter) {}\r\n" +
"}");
global::EnvDTE.vsCMParameterKind kind = parameter.ParameterKind;
Assert.AreEqual(global::EnvDTE.vsCMParameterKind.vsCMParameterKindNone, kind);
}
[Test]
public void ParameterKind_OptionalParameter_ReturnsOptional()
{
CreateParameter(
"public class MyClass {\r\n" +
" public void MyMethod(int parameter = 0) {}\r\n" +
"}");
global::EnvDTE.vsCMParameterKind kind = parameter.ParameterKind;
Assert.AreEqual(global::EnvDTE.vsCMParameterKind.vsCMParameterKindOptional, kind);
}
[Test]
public void ParameterKind_OutParameter_ReturnsOut()
{
CreateParameter(
"public class MyClass {\r\n" +
" public void MyMethod(out int parameter) { parameter = 2; }\r\n" +
"}");
global::EnvDTE.vsCMParameterKind kind = parameter.ParameterKind;
Assert.AreEqual(global::EnvDTE.vsCMParameterKind.vsCMParameterKindOut, kind);
}
[Test]
public void ParameterKind_RefParameter_ReturnsRef()
{
CreateParameter(
"public class MyClass {\r\n" +
" public void MyMethod(ref int parameter) {}\r\n" +
"}");
global::EnvDTE.vsCMParameterKind kind = parameter.ParameterKind;
Assert.AreEqual(global::EnvDTE.vsCMParameterKind.vsCMParameterKindRef, kind);
}
[Test]
public void ParameterKind_ParamArrayParameter_ReturnsParamArray()
{
CreateParameter(
"public class MyClass {\r\n" +
" 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 @@ @@ -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 @@ @@ -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