From eec6fd137fa079f60d429fdb4aaac8801972f68a Mon Sep 17 00:00:00 2001 From: Pavel Talanov Date: Wed, 16 Nov 2011 17:44:46 +0400 Subject: [PATCH] Refactored test code a bit. --- .../jetbrains/k2js/test/KotlinLibTest.java | 35 +++++----------- .../k2js/test/RhinoPropertyTypesChecker.java | 41 +++++++++++++++++++ 2 files changed, 51 insertions(+), 25 deletions(-) create mode 100644 translator/test/org/jetbrains/k2js/test/RhinoPropertyTypesChecker.java diff --git a/translator/test/org/jetbrains/k2js/test/KotlinLibTest.java b/translator/test/org/jetbrains/k2js/test/KotlinLibTest.java index 894c8000bd1..bf589819f46 100644 --- a/translator/test/org/jetbrains/k2js/test/KotlinLibTest.java +++ b/translator/test/org/jetbrains/k2js/test/KotlinLibTest.java @@ -3,7 +3,6 @@ package org.jetbrains.k2js.test; import org.junit.Test; import org.mozilla.javascript.Context; import org.mozilla.javascript.Function; -import org.mozilla.javascript.NativeObject; import org.mozilla.javascript.Scriptable; import java.util.Arrays; @@ -11,8 +10,6 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import static org.junit.Assert.assertTrue; - /** * @author Talanov Pavel */ @@ -30,39 +27,27 @@ public class KotlinLibTest extends TranslationTest { return MAIN; } - protected void verifyObjectHasExpectedPropertiesOfExpectedTypes - (NativeObject object, Map> nameToClassMap) { - for (Map.Entry> entry : nameToClassMap.entrySet()) { - String name = entry.getKey(); - Class expectedClass = entry.getValue(); - assertTrue(object + " must contain key " + name, object.containsKey(name)); - assertTrue(object + "'s property " + name + " must be of type " + expectedClass, - expectedClass.isInstance(object.get(name))); - } + private void runPropertyTypeCheck(String objectName, Map> propertyToType) + throws Exception { + runRhinoTest(Arrays.asList(kotlinLibraryPath()), new RhinoPropertyTypesChecker(objectName, propertyToType)); } @Test public void kotlinJsLibRunsWithRhino() throws Exception { Context context = Context.enter(); Scriptable scope = context.initStandardObjects(); - // ss runFileWithRhino(kotlinLibraryPath(), context, scope); Context.exit(); } @Test public void classObjectHasCreateMethod() throws Exception { - final Map> nameToClassMap = - new HashMap>(); - nameToClassMap.put("create", Function.class); - - runRhinoTest(Arrays.asList(kotlinLibraryPath()), - new RhinoResultChecker() { - @Override - public void runChecks(Context context, Scriptable scope) throws Exception { - NativeObject object = RhinoUtils.extractObject("Class", scope); - verifyObjectHasExpectedPropertiesOfExpectedTypes(object, nameToClassMap); - } - }); + String objectName = "Class"; + final Map> propertyToType + = new HashMap>(); + propertyToType.put("create", Function.class); + runPropertyTypeCheck(objectName, propertyToType); } + + } diff --git a/translator/test/org/jetbrains/k2js/test/RhinoPropertyTypesChecker.java b/translator/test/org/jetbrains/k2js/test/RhinoPropertyTypesChecker.java new file mode 100644 index 00000000000..8e25bb880c3 --- /dev/null +++ b/translator/test/org/jetbrains/k2js/test/RhinoPropertyTypesChecker.java @@ -0,0 +1,41 @@ +package org.jetbrains.k2js.test; + +import org.mozilla.javascript.Context; +import org.mozilla.javascript.NativeObject; +import org.mozilla.javascript.Scriptable; + +import java.util.Map; + +import static org.junit.Assert.assertTrue; + +/** + * @author Talanov Pavel + */ +public class RhinoPropertyTypesChecker implements RhinoResultChecker { + + final private String objectName; + final private Map> propertyToType; + + public RhinoPropertyTypesChecker(String objectName, Map> propertyToType) { + this.objectName = objectName; + this.propertyToType = propertyToType; + } + + @Override + public void runChecks(Context context, Scriptable scope) throws Exception { + NativeObject object = RhinoUtils.extractObject(objectName, scope); + verifyObjectHasExpectedPropertiesOfExpectedTypes(object, propertyToType); + } + + private void verifyObjectHasExpectedPropertiesOfExpectedTypes + (NativeObject object, Map> nameToClassMap) { + for (Map.Entry> entry : nameToClassMap.entrySet()) { + String name = entry.getKey(); + Class expectedClass = entry.getValue(); + assertTrue(object + " must contain key " + name, object.containsKey(name)); + assertTrue(object + "'s property " + name + " must be of type " + expectedClass, + expectedClass.isInstance(object.get(name))); + } + } + +}