Browse Source

Fixed unit tests.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@1422 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 19 years ago
parent
commit
5b72594fad
  1. 17
      src/Main/Base/Project/Src/Dom/Implementations/ConstructedReturnType.cs
  2. 13
      src/Main/Base/Project/Src/Dom/Implementations/GenericReturnType.cs
  3. 6
      src/Main/Base/Project/Src/Dom/Implementations/SystemTypes.cs
  4. 4
      src/Main/Base/Project/Src/Dom/MemberLookupHelper.cs
  5. 2
      src/Main/Base/Project/Src/Dom/ReflectionLayer/DomPersistence.cs
  6. 2
      src/Main/Base/Test/GenericResolverTests.cs
  7. 12
      src/Main/Base/Test/MemberLookupHelperTests.cs
  8. 2
      src/Main/Base/Test/NRefactoryResolverTests.cs
  9. 7
      src/Main/Base/Test/ReflectionLayerTests.cs

17
src/Main/Base/Project/Src/Dom/Implementations/ConstructedReturnType.cs

@ -75,9 +75,8 @@ namespace ICSharpCode.SharpDevelop.Dom
bool CheckReturnType(IReturnType t) bool CheckReturnType(IReturnType t)
{ {
if (t is GenericReturnType) { if (t.IsGenericReturnType) {
GenericReturnType rt = (GenericReturnType)t; return t.CastToGenericReturnType().TypeParameter.Method == null;
return rt.TypeParameter.Method == null;
} else if (t.IsArrayReturnType) { } else if (t.IsArrayReturnType) {
return CheckReturnType(t.CastToArrayReturnType().ArrayElementType); return CheckReturnType(t.CastToArrayReturnType().ArrayElementType);
} else if (t.IsConstructedReturnType) { } else if (t.IsConstructedReturnType) {
@ -212,12 +211,6 @@ namespace ICSharpCode.SharpDevelop.Dom
return l; return l;
} }
public override bool IsDefaultReturnType {
get {
return false;
}
}
public override string ToString() public override string ToString()
{ {
string r = "[ConstructedReturnType: "; string r = "[ConstructedReturnType: ";
@ -232,6 +225,12 @@ namespace ICSharpCode.SharpDevelop.Dom
return r + ">]"; return r + ">]";
} }
public override bool IsDefaultReturnType {
get {
return false;
}
}
public override bool IsArrayReturnType { public override bool IsArrayReturnType {
get { get {
return false; return false;

13
src/Main/Base/Project/Src/Dom/Implementations/GenericReturnType.cs

@ -26,9 +26,10 @@ namespace ICSharpCode.SharpDevelop.Dom
public override bool Equals(object o) public override bool Equals(object o)
{ {
GenericReturnType rt = o as GenericReturnType; IReturnType rt = o as IReturnType;
if (rt == null) return false; if (rt == null || !rt.IsGenericReturnType)
return typeParameter.Equals(rt.typeParameter); return false;
return typeParameter.Equals(rt.CastToGenericReturnType().typeParameter);
} }
public override int GetHashCode() public override int GetHashCode()
@ -111,6 +112,12 @@ namespace ICSharpCode.SharpDevelop.Dom
return String.Format("[GenericReturnType: {0}]", typeParameter); return String.Format("[GenericReturnType: {0}]", typeParameter);
} }
public override bool IsDefaultReturnType {
get {
return false;
}
}
public override bool IsArrayReturnType { public override bool IsArrayReturnType {
get { get {
return false; return false;

6
src/Main/Base/Project/Src/Dom/Implementations/SystemTypes.cs

@ -77,11 +77,11 @@ namespace ICSharpCode.SharpDevelop.Dom
public class VoidClass : DefaultClass public class VoidClass : DefaultClass
{ {
public static readonly VoidClass Instance = new VoidClass();
internal static readonly string VoidName = typeof(void).FullName; internal static readonly string VoidName = typeof(void).FullName;
public static readonly VoidClass Instance = new VoidClass();
public VoidClass() : base(DefaultCompilationUnit.DummyCompilationUnit, VoidName) public VoidClass()
: base(DefaultCompilationUnit.DummyCompilationUnit, VoidName)
{ {
} }

4
src/Main/Base/Project/Src/Dom/MemberLookupHelper.cs

@ -508,8 +508,8 @@ namespace ICSharpCode.SharpDevelop.Dom
{ {
if (argument == null) // TODO: Use NullReturnType instead of no return type if (argument == null) // TODO: Use NullReturnType instead of no return type
return true; // "null" can be passed for any argument return true; // "null" can be passed for any argument
if (expected is GenericReturnType) { if (expected.IsGenericReturnType) {
foreach (IReturnType constraint in ((GenericReturnType)expected).TypeParameter.Constraints) { foreach (IReturnType constraint in expected.CastToGenericReturnType().TypeParameter.Constraints) {
if (!ConversionExists(argument, constraint)) { if (!ConversionExists(argument, constraint)) {
return false; return false;
} }

2
src/Main/Base/Project/Src/Dom/ReflectionLayer/DomPersistence.cs

@ -528,7 +528,7 @@ namespace ICSharpCode.SharpDevelop.Dom
classIndices.Add(pair, externalTypes.Count + classCount); classIndices.Add(pair, externalTypes.Count + classCount);
externalTypes.Add(pair); externalTypes.Add(pair);
} }
} else if (rt is GenericReturnType) { } else if (rt.IsGenericReturnType) {
// ignore // ignore
} else if (rt.IsArrayReturnType) { } else if (rt.IsArrayReturnType) {
AddExternalType(rt.CastToArrayReturnType().ArrayElementType, externalTypes, classCount); AddExternalType(rt.CastToArrayReturnType().ArrayElementType, externalTypes, classCount);

2
src/Main/Base/Test/GenericResolverTests.cs

@ -77,7 +77,7 @@ class TestClass {
Assert.IsTrue(result is MemberResolveResult); Assert.IsTrue(result is MemberResolveResult);
IMethod m = (IMethod)((MemberResolveResult)result).ResolvedMember; IMethod m = (IMethod)((MemberResolveResult)result).ResolvedMember;
Assert.AreEqual("TestClass", m.ReturnType.FullyQualifiedName); Assert.AreEqual("TestClass", m.ReturnType.FullyQualifiedName);
Assert.AreEqual(1, m.ReturnType.ArrayDimensions); Assert.AreEqual(1, m.ReturnType.CastToArrayReturnType().ArrayDimensions);
} }
[Test] [Test]

12
src/Main/Base/Test/MemberLookupHelperTests.cs

@ -33,18 +33,19 @@ namespace ICSharpCode.SharpDevelop.Tests
[Test] [Test]
public void TypeParameterPassedToBaseClassTest() public void TypeParameterPassedToBaseClassTest()
{ {
IReturnType[] stringInt = { ReflectionReturnType.String, ReflectionReturnType.Int }; IReturnType[] stringInt = { msc.SystemTypes.String, msc.SystemTypes.Int32 };
IReturnType rrt = new ConstructedReturnType(DictionaryRT, stringInt); IReturnType rrt = new ConstructedReturnType(DictionaryRT, stringInt);
IReturnType res = MemberLookupHelper.GetTypeParameterPassedToBaseClass(rrt, EnumerableClass, 0); IReturnType res = MemberLookupHelper.GetTypeParameterPassedToBaseClass(rrt, EnumerableClass, 0);
Assert.AreEqual("System.Collections.Generic.KeyValuePair", res.FullyQualifiedName); Assert.AreEqual("System.Collections.Generic.KeyValuePair", res.FullyQualifiedName);
Assert.AreEqual("System.String", res.TypeArguments[0].FullyQualifiedName); ConstructedReturnType resc = res.CastToConstructedReturnType();
Assert.AreEqual("System.Int32", res.TypeArguments[1].FullyQualifiedName); Assert.AreEqual("System.String", resc.TypeArguments[0].FullyQualifiedName);
Assert.AreEqual("System.Int32", resc.TypeArguments[1].FullyQualifiedName);
} }
[Test] [Test]
public void TypeParameterPassedToBaseClassSameClass() public void TypeParameterPassedToBaseClassSameClass()
{ {
IReturnType[] stringArr = { ReflectionReturnType.String }; IReturnType[] stringArr = { msc.SystemTypes.String };
IReturnType rrt = new ConstructedReturnType(EnumerableClass.DefaultReturnType, stringArr); IReturnType rrt = new ConstructedReturnType(EnumerableClass.DefaultReturnType, stringArr);
IReturnType res = MemberLookupHelper.GetTypeParameterPassedToBaseClass(rrt, EnumerableClass, 0); IReturnType res = MemberLookupHelper.GetTypeParameterPassedToBaseClass(rrt, EnumerableClass, 0);
Assert.AreEqual("System.String", res.FullyQualifiedName); Assert.AreEqual("System.String", res.FullyQualifiedName);
@ -53,7 +54,8 @@ namespace ICSharpCode.SharpDevelop.Tests
[Test] [Test]
public void GetCommonType() public void GetCommonType()
{ {
IReturnType res = MemberLookupHelper.GetCommonType(swf.GetClass("System.Windows.Forms.ToolStripButton").DefaultReturnType, IReturnType res = MemberLookupHelper.GetCommonType(msc,
swf.GetClass("System.Windows.Forms.ToolStripButton").DefaultReturnType,
swf.GetClass("System.Windows.Forms.ToolStripSeparator").DefaultReturnType); swf.GetClass("System.Windows.Forms.ToolStripSeparator").DefaultReturnType);
Assert.AreEqual("System.Windows.Forms.ToolStripItem", res.FullyQualifiedName); Assert.AreEqual("System.Windows.Forms.ToolStripItem", res.FullyQualifiedName);
} }

2
src/Main/Base/Test/NRefactoryResolverTests.cs

@ -365,7 +365,7 @@ class A {
"; ";
ResolveResult result = Resolve(program, "TestMethod()", 4); ResolveResult result = Resolve(program, "TestMethod()", 4);
Assert.IsNotNull(result); Assert.IsNotNull(result);
Assert.AreSame(ReflectionReturnType.Void, result.ResolvedType, result.ResolvedType.ToString()); Assert.AreSame(VoidReturnType.Instance, result.ResolvedType, result.ResolvedType.ToString());
Assert.AreEqual(0, result.GetCompletionData(lastPC).Count); Assert.AreEqual(0, result.GetCompletionData(lastPC).Count);
} }

7
src/Main/Base/Test/ReflectionLayerTests.cs

@ -12,6 +12,7 @@ using System.Reflection;
using ICSharpCode.Core; using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Dom; using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.SharpDevelop.Dom.ReflectionLayer;
using NUnit.Framework; using NUnit.Framework;
namespace ICSharpCode.SharpDevelop.Tests namespace ICSharpCode.SharpDevelop.Tests
@ -102,7 +103,7 @@ namespace ICSharpCode.SharpDevelop.Tests
{ {
IClass c = pc.GetClass("System.Void"); IClass c = pc.GetClass("System.Void");
Assert.IsNotNull(c, "System.Void not found"); Assert.IsNotNull(c, "System.Void not found");
Assert.AreSame(c.DefaultReturnType, ReflectionReturnType.Void, "ReflectionReturnType.Void is c.DefaultReturnType"); Assert.AreSame(c.DefaultReturnType, VoidReturnType.Instance, "VoidReturnType.Instance is c.DefaultReturnType");
} }
class TestClass<A, B> where A : B { class TestClass<A, B> where A : B {
@ -154,8 +155,8 @@ namespace ICSharpCode.SharpDevelop.Tests
Assert.AreEqual("IEquatable", m.TypeParameters[0].Constraints[0].Name); Assert.AreEqual("IEquatable", m.TypeParameters[0].Constraints[0].Name);
Assert.AreEqual(1, m.TypeParameters[0].Constraints[0].TypeParameterCount); Assert.AreEqual(1, m.TypeParameters[0].Constraints[0].TypeParameterCount);
Assert.AreEqual(1, m.TypeParameters[0].Constraints[0].TypeArguments.Count); Assert.AreEqual(1, m.TypeParameters[0].Constraints[0].CastToConstructedReturnType().TypeArguments.Count);
GenericReturnType grt = (GenericReturnType)m.TypeParameters[0].Constraints[0].TypeArguments[0]; GenericReturnType grt = (GenericReturnType)m.TypeParameters[0].Constraints[0].CastToConstructedReturnType().TypeArguments[0];
Assert.AreSame(m.TypeParameters[0], grt.TypeParameter); Assert.AreSame(m.TypeParameters[0], grt.TypeParameter);
} }
} }

Loading…
Cancel
Save