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 @@ @@ -2,6 +2,7 @@
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using ICSharpCode.NRefactory.CSharp;
using ICSharpCode.NRefactory.CSharp.Refactoring;
using ICSharpCode.NRefactory.Semantics;
@ -31,7 +32,7 @@ namespace ICSharpCode.PackageManagement.EnvDTE @@ -31,7 +32,7 @@ namespace ICSharpCode.PackageManagement.EnvDTE
string GetValue(ResolveResult value)
{
var astBuilder = new TypeSystemAstBuilder();
var ast = astBuilder.ConvertConstantValue(value);
Expression ast = astBuilder.ConvertConstantValue(value);
return ast.ToString();
}

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

@ -85,7 +85,6 @@ @@ -85,7 +85,6 @@
<Compile Include="Src\CodeGeneratorTests.cs" />
<Compile Include="Src\DependentFileNameTests.cs" />
<Compile Include="Src\EnvDTE\CodeAttribute2Tests.cs" />
<Compile Include="Src\EnvDTE\CodeAttributesTests.cs" />
<Compile Include="Src\EnvDTE\CodeClass2Tests.cs" />
<Compile Include="Src\EnvDTE\CodeDelegateTests.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 @@ -22,10 +22,12 @@ namespace PackageManagement.Tests.EnvDTE
namespace Test {
public class MyAttribute : Attribute
{
public MyAttribute() {}
public MyAttribute(object arg) {}
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 { @@ -70,18 +72,16 @@ namespace Test {
}
[Test]
[Ignore("Why is true expected to be uppercase?")]
public void Value_AttributeHasOneBooleanPositionalArgument_ReturnsBooleanValue()
{
CreateAttribute("[Test.MyAttribute(true)]");
string attributeValue = codeAttribute.Value;
Assert.AreEqual("True", attributeValue);
Assert.AreEqual("true", attributeValue);
}
[Test]
[Ignore("Why is true expected to be uppercase?")]
public void Value_AttributeHasStringAndBooleanPositionalArgument_ReturnsArgumentCommandSeparated()
{
CreateAttribute("[Test.MyAttribute(\"Test\", true)]");
@ -91,86 +91,77 @@ namespace Test { @@ -91,86 +91,77 @@ namespace Test {
Assert.AreEqual("\"Test\", true", attributeValue);
}
// [Test]
// public void Arguments_AttributeHasOneStringPositionalArgument_ReturnsOneAttributeArgumentWithNoName()
// {
// CreateMSBuildAttribute("Test.MyAttribute");
// helper.AddPositionalArguments("StringValue");
// CreateAttribute();
//
// global::EnvDTE.CodeElements args = codeAttribute.Arguments;
//
// CodeAttributeArgument attributeArg = args.FirstCodeAttributeArgumentOrDefault();
//
// Assert.AreEqual(1, args.Count);
// Assert.AreEqual(String.Empty, attributeArg.Name);
// Assert.AreEqual("\"StringValue\"", attributeArg.Value);
// }
//
// [Test]
// public void Arguments_AttributeHasOneStringNamedArgument_ReturnsOneAttributeArgumentWithName()
// {
// CreateMSBuildAttribute("Test.MyAttribute");
// helper.AddNamedArgument("Name", "StringValue");
// CreateAttribute();
//
// global::EnvDTE.CodeElements args = codeAttribute.Arguments;
//
// CodeAttributeArgument attributeArg = args.FirstCodeAttributeArgumentOrDefault();
//
// Assert.AreEqual("Name", attributeArg.Name);
// Assert.AreEqual("\"StringValue\"", attributeArg.Value);
// }
//
// [Test]
// public void Arguments_GetArgumentByItemIndexWhenTwoPositionalArguments_ReturnsArgumentAtIndex()
// {
// CreateMSBuildAttribute("Test.MyAttribute");
// helper.AddPositionalArguments("StringValue", false);
// CreateAttribute();
//
// global::EnvDTE.CodeElements args = codeAttribute.Arguments;
//
// CodeAttributeArgument arg = args.Item(2) as CodeAttributeArgument;
//
// Assert.AreEqual("False", arg.Value);
// }
//
// [Test]
// public void Arguments_GetArgumentByItemNameWhenTwoNamedArguments_ReturnsArgument()
// {
// CreateMSBuildAttribute("Test.MyAttribute");
// helper.AddNamedArgument("One", "OneValue");
// helper.AddNamedArgument("Two", false);
// CreateAttribute();
//
// global::EnvDTE.CodeElements args = codeAttribute.Arguments;
//
// CodeAttributeArgument arg = args.Item("Two") as CodeAttributeArgument;
//
// Assert.AreEqual("False", arg.Value);
// }
//
// [Test]
// public void Name_AttributeIsNotLastPartOfName_ReturnsShortNameContainingAttributePart()
// {
// CreateMSBuildAttribute("Tests.TestAttributeColumn", "TestAttributeColumn");
// CreateAttribute();
//
// string name = codeAttribute.Name;
//
// Assert.AreEqual("TestAttributeColumn", name);
// }
//
// [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);
// }
[Test]
public void Arguments_AttributeHasOneStringPositionalArgument_ReturnsOneAttributeArgumentWithNoName()
{
CreateAttribute("[Test.MyAttribute(\"StringValue\")]");
global::EnvDTE.CodeElements args = codeAttribute.Arguments;
CodeAttributeArgument attributeArg = args.FirstCodeAttributeArgumentOrDefault();
Assert.AreEqual(1, args.Count);
Assert.AreEqual(String.Empty, attributeArg.Name);
Assert.AreEqual("\"StringValue\"", attributeArg.Value);
}
[Test]
public void Arguments_AttributeHasOneStringNamedArgument_ReturnsOneAttributeArgumentWithName()
{
CreateAttribute("[Test.MyAttribute(One = \"StringValue\")]");
global::EnvDTE.CodeElements args = codeAttribute.Arguments;
CodeAttributeArgument attributeArg = args.FirstCodeAttributeArgumentOrDefault();
Assert.AreEqual("One", attributeArg.Name);
Assert.AreEqual("\"StringValue\"", attributeArg.Value);
}
[Test]
public void Arguments_GetArgumentByItemIndexWhenTwoPositionalArguments_ReturnsArgumentAtIndex()
{
CreateAttribute("[Test.MyAttribute(\"StringValue\", false)]");
global::EnvDTE.CodeElements args = codeAttribute.Arguments;
CodeAttributeArgument arg = args.Item(2) as CodeAttributeArgument;
Assert.AreEqual("false", arg.Value);
}
[Test]
public void Arguments_GetArgumentByItemNameWhenTwoNamedArguments_ReturnsArgument()
{
CreateAttribute("[Test.MyAttribute(One = \"OneValue\", Two = false)]");
global::EnvDTE.CodeElements args = codeAttribute.Arguments;
var arg = args.Item("Two") as CodeAttributeArgument;
Assert.AreEqual("false", arg.Value);
}
[Test]
public void Name_AttributeIsNotLastPartOfName_ReturnsShortNameContainingAttributePart()
{
CreateAttribute(
"public class TestAttributeColumn : Attribute {}\r\n" +
"[TestAttributeColumn]");
string name = codeAttribute.Name;
Assert.AreEqual("TestAttributeColumn", name);
}
[Test]
public void Kind_AttributeIsDataAnnotationsDisplayColumnAttribute_ReturnsAttribute()
{
CreateAttribute("[System.FlagsAttribute]");
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 @@ @@ -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 @@ -349,5 +349,26 @@ namespace PackageManagement.Tests.EnvDTE
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