From 4f16b5da8c2d9e553925929b6a650847bd6f2b20 Mon Sep 17 00:00:00 2001 From: Stepan Koltsov Date: Wed, 14 Dec 2011 00:58:13 +0400 Subject: [PATCH] better test --- .../org/jetbrains/jet/ReadClassDataTest.java | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/compiler/tests/org/jetbrains/jet/ReadClassDataTest.java b/compiler/tests/org/jetbrains/jet/ReadClassDataTest.java index 0a84cae970b..7a0fa933747 100644 --- a/compiler/tests/org/jetbrains/jet/ReadClassDataTest.java +++ b/compiler/tests/org/jetbrains/jet/ReadClassDataTest.java @@ -30,6 +30,8 @@ import org.jetbrains.jet.lang.resolve.BindingContext; import org.jetbrains.jet.lang.resolve.BindingTraceContext; import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver; import org.jetbrains.jet.lang.resolve.java.JavaSemanticServices; +import org.jetbrains.jet.lang.types.JetType; +import org.jetbrains.jet.lang.types.TypeConstructor; import org.jetbrains.jet.plugin.JetLanguage; import org.junit.Assert; @@ -159,6 +161,20 @@ public class ReadClassDataTest extends UsefulTestCase { Assert.assertEquals(a.getReturnType(), b.getReturnType()); System.out.println("fun " + a.getName() + "(...): " + a.getReturnType()); } + + private void compareAnything(Object a, Object b) { + if (a instanceof JetType || b instanceof JetType) { + compareTypes((JetType) a, (JetType) b); + } else { + Assert.assertEquals(a, b); + } + } + + private void compareTypes(JetType a, JetType b) { + // cannot just call a.equals(b) because "a" and "b" were created in different environments, + // TypeConstructor does not override equals() + Assert.assertEquals(a.toString(), b.toString()); + } private void compareAnything(Class clazz, T a, T b) { System.out.println("Comparing " + clazz); @@ -182,7 +198,7 @@ public class ReadClassDataTest extends UsefulTestCase { System.out.println(method.getName()); Object ap = invoke(method, a); Object bp = invoke(method, b); - Assert.assertEquals(ap, bp); + compareAnything(ap, bp); } }