Mercurial > hg > rhino-tests
changeset 61:39454ef51d62 draft
Make the test src/org/RhinoTests/ScriptEngineClassTest.java compatible with JDK 7.
author | Pavel Tisnovsky <ptisnovs@redhat.com> |
---|---|
date | Wed, 14 Nov 2012 11:05:35 +0100 |
parents | dc87f0d9c6b8 |
children | 610558995315 |
files | ChangeLog src/org/RhinoTests/ScriptEngineClassTest.java |
diffstat | 2 files changed, 80 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog Tue Nov 13 11:14:14 2012 +0100 +++ b/ChangeLog Wed Nov 14 11:05:35 2012 +0100 @@ -1,3 +1,8 @@ +2012-11-14 Pavel Tisnovsky <ptisnovs@redhat.com> + + * src/org/RhinoTests/ScriptEngineClassTest.java: + Make this test compatible with JDK 7. + 2012-11-13 Pavel Tisnovsky <ptisnovs@redhat.com> * src/org/RhinoTests/ScriptEngineManagerClassTest.java:
--- a/src/org/RhinoTests/ScriptEngineClassTest.java Tue Nov 13 11:14:14 2012 +0100 +++ b/src/org/RhinoTests/ScriptEngineClassTest.java Wed Nov 14 11:05:35 2012 +0100 @@ -43,6 +43,8 @@ import java.util.Arrays; import java.util.ArrayList; import java.util.List; +import java.util.Map; +import java.util.HashMap; import java.lang.reflect.Constructor; import java.lang.reflect.Field; @@ -51,6 +53,7 @@ import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; +import javax.script.ScriptEngine; @@ -65,7 +68,7 @@ /** * Object that represents the type of ScriptEngine. */ - Class scriptEngineClass = null; + Class<?> scriptEngineClass = null; @Override protected void setUp(String[] args) { @@ -193,7 +196,7 @@ * Test for method javax.script.ScriptEngine.getClass().getInterfaces() */ protected void testGetInterfaces() { - List interfaces = Arrays.asList(this.scriptEngineClass.getInterfaces()); + List<Class<?>> interfaces = Arrays.asList(this.scriptEngineClass.getInterfaces()); assertTrue(interfaces.isEmpty(), "list of implemented interfaces should be empty"); } @@ -261,7 +264,7 @@ * Test for method javax.script.ScriptEngine.getClass().getSuperclass() */ protected void testGetSuperclass() { - Class superClass = this.scriptEngineClass.getSuperclass(); + Class<?> superClass = this.scriptEngineClass.getSuperclass(); assertNull(superClass, "Method ScriptEngine.getClass().getSuperclass() does not return null"); } @@ -270,16 +273,42 @@ * Test for method javax.script.ScriptEngine.getClass().getConstructors() */ protected void testGetConstructors() { - Constructor[] constructors = this.scriptEngineClass.getConstructors(); + // map of constructors which should exists + Map<String, String> testedConstructors = null; + Map<String, String> testedConstructors_jdk6 = new HashMap<String, String>(); + Map<String, String> testedConstructors_jdk7 = new HashMap<String, String>(); + + + // get the right map containing constructor signatures + testedConstructors = getJavaVersion() < 7 ? testedConstructors_jdk6 : testedConstructors_jdk7; + + // get all constructors for this class + Constructor<?>[] constructors = this.scriptEngineClass.getConstructors(); + + // basic check for a number of constructors assertEquals(constructors.length, 0, "no constructors should be set"); + } /** * Test for method javax.script.ScriptEngine.getClass().getDeclaredConstructors() */ protected void testGetDeclaredConstructors() { - Constructor[] constructors = this.scriptEngineClass.getDeclaredConstructors(); - assertEquals(constructors.length, 0, "no constructors should be set"); + // map of constructors which should exists + Map<String, String> testedConstructors = null; + Map<String, String> testedConstructors_jdk6 = new HashMap<String, String>(); + Map<String, String> testedConstructors_jdk7 = new HashMap<String, String>(); + + + // get the right map containing constructor signatures + testedConstructors = getJavaVersion() < 7 ? testedConstructors_jdk6 : testedConstructors_jdk7; + + // get all declared constructors for this class + Constructor<?>[] declaredConstructors = this.scriptEngineClass.getDeclaredConstructors(); + + // basic check for a number of declared constructors + assertEquals(declaredConstructors.length, 0, "no constructors should be set"); + } /** @@ -343,7 +372,24 @@ */ protected void testGetMethods() { // following methods should be inherited - final String[] methodsThatShouldExists = { + final String[] methodsThatShouldExists_jdk6 = { + "public abstract java.lang.Object javax.script.ScriptEngine.eval(java.io.Reader) throws javax.script.ScriptException", + "public abstract java.lang.Object javax.script.ScriptEngine.eval(java.io.Reader,javax.script.Bindings) throws javax.script.ScriptException", + "public abstract java.lang.Object javax.script.ScriptEngine.eval(java.io.Reader,javax.script.ScriptContext) throws javax.script.ScriptException", + "public abstract java.lang.Object javax.script.ScriptEngine.eval(java.lang.String) throws javax.script.ScriptException", + "public abstract java.lang.Object javax.script.ScriptEngine.eval(java.lang.String,javax.script.Bindings) throws javax.script.ScriptException", + "public abstract java.lang.Object javax.script.ScriptEngine.eval(java.lang.String,javax.script.ScriptContext) throws javax.script.ScriptException", + "public abstract java.lang.Object javax.script.ScriptEngine.get(java.lang.String)", + "public abstract javax.script.Bindings javax.script.ScriptEngine.createBindings()", + "public abstract javax.script.Bindings javax.script.ScriptEngine.getBindings(int)", + "public abstract javax.script.ScriptContext javax.script.ScriptEngine.getContext()", + "public abstract javax.script.ScriptEngineFactory javax.script.ScriptEngine.getFactory()", + "public abstract void javax.script.ScriptEngine.put(java.lang.String,java.lang.Object)", + "public abstract void javax.script.ScriptEngine.setBindings(javax.script.Bindings,int)", + "public abstract void javax.script.ScriptEngine.setContext(javax.script.ScriptContext)", + }; + + final String[] methodsThatShouldExists_jdk7 = { "public abstract java.lang.Object javax.script.ScriptEngine.eval(java.io.Reader) throws javax.script.ScriptException", "public abstract java.lang.Object javax.script.ScriptEngine.eval(java.io.Reader,javax.script.Bindings) throws javax.script.ScriptException", "public abstract java.lang.Object javax.script.ScriptEngine.eval(java.io.Reader,javax.script.ScriptContext) throws javax.script.ScriptException", @@ -359,6 +405,7 @@ "public abstract void javax.script.ScriptEngine.setBindings(javax.script.Bindings,int)", "public abstract void javax.script.ScriptEngine.setContext(javax.script.ScriptContext)", }; + // get all inherited methods Method[] methods = this.scriptEngineClass.getMethods(); // and transform the array into a list of method names @@ -366,6 +413,7 @@ for (Method method : methods) { methodsAsString.add(method.toString()); } + String[] methodsThatShouldExists = getJavaVersion() < 7 ? methodsThatShouldExists_jdk6 : methodsThatShouldExists_jdk7; // check if all required methods really exists for (String methodThatShouldExists : methodsThatShouldExists) { assertTrue(methodsAsString.contains(methodThatShouldExists), @@ -378,7 +426,7 @@ */ protected void testGetDeclaredMethods() { // following methods should be declared - final String[] declaredMethodsThatShouldExists = { + final String[] declaredMethodsThatShouldExists_jdk6 = { "public abstract java.lang.Object javax.script.ScriptEngine.eval(java.io.Reader) throws javax.script.ScriptException", "public abstract java.lang.Object javax.script.ScriptEngine.eval(java.io.Reader,javax.script.Bindings) throws javax.script.ScriptException", "public abstract java.lang.Object javax.script.ScriptEngine.eval(java.io.Reader,javax.script.ScriptContext) throws javax.script.ScriptException", @@ -394,6 +442,24 @@ "public abstract void javax.script.ScriptEngine.setBindings(javax.script.Bindings,int)", "public abstract void javax.script.ScriptEngine.setContext(javax.script.ScriptContext)", }; + + final String[] declaredMethodsThatShouldExists_jdk7 = { + "public abstract java.lang.Object javax.script.ScriptEngine.eval(java.io.Reader) throws javax.script.ScriptException", + "public abstract java.lang.Object javax.script.ScriptEngine.eval(java.io.Reader,javax.script.Bindings) throws javax.script.ScriptException", + "public abstract java.lang.Object javax.script.ScriptEngine.eval(java.io.Reader,javax.script.ScriptContext) throws javax.script.ScriptException", + "public abstract java.lang.Object javax.script.ScriptEngine.eval(java.lang.String) throws javax.script.ScriptException", + "public abstract java.lang.Object javax.script.ScriptEngine.eval(java.lang.String,javax.script.Bindings) throws javax.script.ScriptException", + "public abstract java.lang.Object javax.script.ScriptEngine.eval(java.lang.String,javax.script.ScriptContext) throws javax.script.ScriptException", + "public abstract java.lang.Object javax.script.ScriptEngine.get(java.lang.String)", + "public abstract javax.script.Bindings javax.script.ScriptEngine.createBindings()", + "public abstract javax.script.Bindings javax.script.ScriptEngine.getBindings(int)", + "public abstract javax.script.ScriptContext javax.script.ScriptEngine.getContext()", + "public abstract javax.script.ScriptEngineFactory javax.script.ScriptEngine.getFactory()", + "public abstract void javax.script.ScriptEngine.put(java.lang.String,java.lang.Object)", + "public abstract void javax.script.ScriptEngine.setBindings(javax.script.Bindings,int)", + "public abstract void javax.script.ScriptEngine.setContext(javax.script.ScriptContext)", + }; + // get all declared methods Method[] declaredMethods = this.scriptEngineClass.getDeclaredMethods(); // and transform the array into a list of method names @@ -401,6 +467,7 @@ for (Method method : declaredMethods) { methodsAsString.add(method.toString()); } + String[] declaredMethodsThatShouldExists = getJavaVersion() < 7 ? declaredMethodsThatShouldExists_jdk6 : declaredMethodsThatShouldExists_jdk7; // check if all required methods really exists for (String methodThatShouldExists : declaredMethodsThatShouldExists) { assertTrue(methodsAsString.contains(methodThatShouldExists),