Browse Source

Update tests for EnvDTE.CodeAttribute2.

pull/375/head
Matt Ward 12 years ago
parent
commit
e73cdbe844
  1. 3
      src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/CodeAttributeArgument.cs
  2. 1
      src/AddIns/Misc/PackageManagement/Test/PackageManagement.Tests.csproj
  3. 161
      src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/CodeAttribute2Tests.cs
  4. 71
      src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/CodeAttributesTests.cs
  5. 21
      src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/CodeClass2Tests.cs

3
src/AddIns/Misc/PackageManagement/Project/Src/EnvDTE/CodeAttributeArgument.cs

@ -2,6 +2,7 @@
// 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.NRefactory.CSharp;
using ICSharpCode.NRefactory.CSharp.Refactoring; using ICSharpCode.NRefactory.CSharp.Refactoring;
using ICSharpCode.NRefactory.Semantics; using ICSharpCode.NRefactory.Semantics;
@ -31,7 +32,7 @@ namespace ICSharpCode.PackageManagement.EnvDTE
string GetValue(ResolveResult value) string GetValue(ResolveResult value)
{ {
var astBuilder = new TypeSystemAstBuilder(); var astBuilder = new TypeSystemAstBuilder();
var ast = astBuilder.ConvertConstantValue(value); Expression ast = astBuilder.ConvertConstantValue(value);
return ast.ToString(); return ast.ToString();
} }

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

@ -85,7 +85,6 @@
<Compile Include="Src\CodeGeneratorTests.cs" /> <Compile Include="Src\CodeGeneratorTests.cs" />
<Compile Include="Src\DependentFileNameTests.cs" /> <Compile Include="Src\DependentFileNameTests.cs" />
<Compile Include="Src\EnvDTE\CodeAttribute2Tests.cs" /> <Compile Include="Src\EnvDTE\CodeAttribute2Tests.cs" />
<Compile Include="Src\EnvDTE\CodeAttributesTests.cs" />
<Compile Include="Src\EnvDTE\CodeClass2Tests.cs" /> <Compile Include="Src\EnvDTE\CodeClass2Tests.cs" />
<Compile Include="Src\EnvDTE\CodeDelegateTests.cs" /> <Compile Include="Src\EnvDTE\CodeDelegateTests.cs" />
<Compile Include="Src\EnvDTE\CodeElementsInNamespaceTests.cs" /> <Compile Include="Src\EnvDTE\CodeElementsInNamespaceTests.cs" />

161
src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/CodeAttribute2Tests.cs

@ -22,10 +22,12 @@ namespace PackageManagement.Tests.EnvDTE
namespace Test { namespace Test {
public class MyAttribute : Attribute public class MyAttribute : Attribute
{ {
public MyAttribute() {}
public MyAttribute(object arg) {} public MyAttribute(object arg) {}
public MyAttribute(object arg1, object arg2) {} public MyAttribute(object arg1, object arg2) {}
public object One, Two; public object One { get; set; }
public object Two { get; set; }
} }
}"); }");
} }
@ -70,18 +72,16 @@ namespace Test {
} }
[Test] [Test]
[Ignore("Why is true expected to be uppercase?")]
public void Value_AttributeHasOneBooleanPositionalArgument_ReturnsBooleanValue() public void Value_AttributeHasOneBooleanPositionalArgument_ReturnsBooleanValue()
{ {
CreateAttribute("[Test.MyAttribute(true)]"); CreateAttribute("[Test.MyAttribute(true)]");
string attributeValue = codeAttribute.Value; string attributeValue = codeAttribute.Value;
Assert.AreEqual("True", attributeValue); Assert.AreEqual("true", attributeValue);
} }
[Test] [Test]
[Ignore("Why is true expected to be uppercase?")]
public void Value_AttributeHasStringAndBooleanPositionalArgument_ReturnsArgumentCommandSeparated() public void Value_AttributeHasStringAndBooleanPositionalArgument_ReturnsArgumentCommandSeparated()
{ {
CreateAttribute("[Test.MyAttribute(\"Test\", true)]"); CreateAttribute("[Test.MyAttribute(\"Test\", true)]");
@ -91,86 +91,77 @@ namespace Test {
Assert.AreEqual("\"Test\", true", attributeValue); Assert.AreEqual("\"Test\", true", attributeValue);
} }
// [Test] [Test]
// public void Arguments_AttributeHasOneStringPositionalArgument_ReturnsOneAttributeArgumentWithNoName() public void Arguments_AttributeHasOneStringPositionalArgument_ReturnsOneAttributeArgumentWithNoName()
// { {
// CreateMSBuildAttribute("Test.MyAttribute"); CreateAttribute("[Test.MyAttribute(\"StringValue\")]");
// helper.AddPositionalArguments("StringValue");
// CreateAttribute(); global::EnvDTE.CodeElements args = codeAttribute.Arguments;
//
// global::EnvDTE.CodeElements args = codeAttribute.Arguments; CodeAttributeArgument attributeArg = args.FirstCodeAttributeArgumentOrDefault();
//
// CodeAttributeArgument attributeArg = args.FirstCodeAttributeArgumentOrDefault(); Assert.AreEqual(1, args.Count);
// Assert.AreEqual(String.Empty, attributeArg.Name);
// Assert.AreEqual(1, args.Count); Assert.AreEqual("\"StringValue\"", attributeArg.Value);
// Assert.AreEqual(String.Empty, attributeArg.Name); }
// Assert.AreEqual("\"StringValue\"", attributeArg.Value);
// } [Test]
// public void Arguments_AttributeHasOneStringNamedArgument_ReturnsOneAttributeArgumentWithName()
// [Test] {
// public void Arguments_AttributeHasOneStringNamedArgument_ReturnsOneAttributeArgumentWithName() CreateAttribute("[Test.MyAttribute(One = \"StringValue\")]");
// {
// CreateMSBuildAttribute("Test.MyAttribute"); global::EnvDTE.CodeElements args = codeAttribute.Arguments;
// helper.AddNamedArgument("Name", "StringValue");
// CreateAttribute(); CodeAttributeArgument attributeArg = args.FirstCodeAttributeArgumentOrDefault();
//
// global::EnvDTE.CodeElements args = codeAttribute.Arguments; Assert.AreEqual("One", attributeArg.Name);
// Assert.AreEqual("\"StringValue\"", attributeArg.Value);
// CodeAttributeArgument attributeArg = args.FirstCodeAttributeArgumentOrDefault(); }
//
// Assert.AreEqual("Name", attributeArg.Name); [Test]
// Assert.AreEqual("\"StringValue\"", attributeArg.Value); public void Arguments_GetArgumentByItemIndexWhenTwoPositionalArguments_ReturnsArgumentAtIndex()
// } {
// CreateAttribute("[Test.MyAttribute(\"StringValue\", false)]");
// [Test]
// public void Arguments_GetArgumentByItemIndexWhenTwoPositionalArguments_ReturnsArgumentAtIndex() global::EnvDTE.CodeElements args = codeAttribute.Arguments;
// {
// CreateMSBuildAttribute("Test.MyAttribute"); CodeAttributeArgument arg = args.Item(2) as CodeAttributeArgument;
// helper.AddPositionalArguments("StringValue", false);
// CreateAttribute(); Assert.AreEqual("false", arg.Value);
// }
// global::EnvDTE.CodeElements args = codeAttribute.Arguments;
// [Test]
// CodeAttributeArgument arg = args.Item(2) as CodeAttributeArgument; public void Arguments_GetArgumentByItemNameWhenTwoNamedArguments_ReturnsArgument()
// {
// Assert.AreEqual("False", arg.Value); CreateAttribute("[Test.MyAttribute(One = \"OneValue\", Two = false)]");
// }
// global::EnvDTE.CodeElements args = codeAttribute.Arguments;
// [Test]
// public void Arguments_GetArgumentByItemNameWhenTwoNamedArguments_ReturnsArgument() var arg = args.Item("Two") as CodeAttributeArgument;
// {
// CreateMSBuildAttribute("Test.MyAttribute"); Assert.AreEqual("false", arg.Value);
// helper.AddNamedArgument("One", "OneValue"); }
// helper.AddNamedArgument("Two", false);
// CreateAttribute(); [Test]
// public void Name_AttributeIsNotLastPartOfName_ReturnsShortNameContainingAttributePart()
// global::EnvDTE.CodeElements args = codeAttribute.Arguments; {
// CreateAttribute(
// CodeAttributeArgument arg = args.Item("Two") as CodeAttributeArgument; "public class TestAttributeColumn : Attribute {}\r\n" +
// "[TestAttributeColumn]");
// Assert.AreEqual("False", arg.Value);
// } string name = codeAttribute.Name;
//
// [Test] Assert.AreEqual("TestAttributeColumn", name);
// public void Name_AttributeIsNotLastPartOfName_ReturnsShortNameContainingAttributePart() }
// {
// CreateMSBuildAttribute("Tests.TestAttributeColumn", "TestAttributeColumn"); [Test]
// CreateAttribute(); public void Kind_AttributeIsDataAnnotationsDisplayColumnAttribute_ReturnsAttribute()
// {
// string name = codeAttribute.Name; CreateAttribute("[System.FlagsAttribute]");
//
// Assert.AreEqual("TestAttributeColumn", name); global::EnvDTE.vsCMElement kind = codeAttribute.Kind;
// }
// Assert.AreEqual(global::EnvDTE.vsCMElement.vsCMElementAttribute, kind);
// [Test] }
// public void Kind_AttributeIsDataAnnotationsDisplayColumnAttribute_ReturnsAttribute()
// {
// CreateMSBuildAttribute("System.ComponentModel.DataAnnotations.DisplayColumnAttribute");
// CreateAttribute();
//
// global::EnvDTE.vsCMElement kind = codeAttribute.Kind;
//
// Assert.AreEqual(global::EnvDTE.vsCMElement.vsCMElementAttribute, kind);
// }
} }
} }

71
src/AddIns/Misc/PackageManagement/Test/Src/EnvDTE/CodeAttributesTests.cs

@ -1,71 +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 System.Collections.Generic;
//using System.Linq;
//using ICSharpCode.PackageManagement.EnvDTE;
//using ICSharpCode.SharpDevelop.Dom;
//using NUnit.Framework;
//using PackageManagement.Tests.Helpers;
//
//namespace PackageManagement.Tests.EnvDTE
//{
// [TestFixture]
// public class CodeAttributesTests
// {
// CodeAttributes attributes;
// ClassHelper helper;
//
// [SetUp]
// public void Init()
// {
// helper = new ClassHelper();
// }
//
// void CreateCodeAttributes()
// {
// attributes = new CodeAttributes(helper.Class);
// }
//
// void CreateMSBuildClass()
// {
// helper.CreateClass("MyClass");
// }
//
// void AddAttributeToClass(string name)
// {
// helper.AddAttributeToClass(name);
// }
//
// List<CodeElement> GetEnumerator()
// {
// return attributes.ToList();
// }
//
// [Test]
// public void GetEnumerator_ClassHasOneAttribute_ReturnsOneAttribute()
// {
// CreateMSBuildClass();
// AddAttributeToClass("TestAttribute");
// CreateCodeAttributes();
//
// CodeAttribute2 attribute = attributes.FirstCodeAttribute2OrDefault();
//
// Assert.AreEqual(1, attributes.Count);
// Assert.AreEqual("Test", attribute.Name);
// }
//
// [Test]
// public void Item_GetItemByNameWhenClassHasOneAttribute_ReturnsOneAttribute()
// {
// CreateMSBuildClass();
// AddAttributeToClass("TestAttribute");
// CreateCodeAttributes();
//
// CodeAttribute2 attribute = attributes.Item("Test") as CodeAttribute2;
//
// Assert.AreEqual("Test", attribute.Name);
// }
// }
//}

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

@ -349,5 +349,26 @@ namespace PackageManagement.Tests.EnvDTE
Assert.AreEqual("Test.MyClass<T>", name); Assert.AreEqual("Test.MyClass<T>", name);
} }
[Test]
public void Attributes_ClassHasOneAttribute_ReturnsOneAttribute()
{
CreateClass("[System.ObsoleteAttribute] class MyClass {}");
CodeAttribute2 attribute = codeClass.Attributes.FirstCodeAttribute2OrDefault();
Assert.AreEqual(1, codeClass.Attributes.Count);
Assert.AreEqual("Obsolete", attribute.Name);
}
[Test]
public void Attributes_GetItemByNameWhenClassHasOneAttribute_ReturnsOneAttribute()
{
CreateClass("[System.ObsoleteAttribute] class MyClass {}");
var attribute = codeClass.Attributes.Item("Obsolete") as CodeAttribute2;
Assert.AreEqual("Obsolete", attribute.Name);
}
} }
} }

Loading…
Cancel
Save