Copied: tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/services/TransformMethodSignatureTest.java (from r573901, tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/services/MethodSignatureTest.java) URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/services/TransformMethodSignatureTest.java?p2=tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/services/TransformMethodSignatureTest.java&p1=tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/services/MethodSignatureTest.java&r1=573901&r2=578520&rev=578520&view=diff ============================================================================== --- tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/services/MethodSignatureTest.java (original) +++ tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry/services/TransformMethodSignatureTest.java Sat Sep 22 15:58:22 2007 @@ -1,4 +1,4 @@ -// Copyright 2006 The Apache Software Foundation +// Copyright 2006, 2007 The Apache Software Foundation // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -12,179 +12,174 @@ // See the License for the specific language governing permissions and // limitations under the License. -package org.apache.tapestry.services; - -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertFalse; - -import java.lang.reflect.Modifier; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; - +package org.apache.tapestry.services; + +import java.lang.reflect.Modifier; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + import org.apache.tapestry.ioc.internal.util.CollectionFactory; -import org.testng.annotations.Test; - -/** - * - */ -public class MethodSignatureTest -{ - - @Test - public void signature_toString() - { - MethodSignature sig = new MethodSignature(Modifier.PUBLIC, "int", "doSomething", - new String[] - { "java.lang.String", "int" }, new String[] - { "java.lang.RuntimeException", "org.foo.FredException" }); - - assertEquals( - sig.toString(), - "public int doSomething(java.lang.String, int) throws java.lang.RuntimeException, org.foo.FredException"); - - sig = new MethodSignature(Modifier.ABSTRACT + Modifier.PROTECTED, "boolean", "misoHapi", - new String[0], new String[0]); - - assertEquals(sig.toString(), "protected abstract boolean misoHapi()"); - } - - @Test - public void medium_description() - { - MethodSignature sig = new MethodSignature(Modifier.PUBLIC, "int", "doSomething", - new String[] - { "java.lang.String", "int" }, new String[] - { "java.lang.RuntimeException", "org.foo.FredException" }); - - assertEquals(sig.getMediumDescription(), "doSomething(java.lang.String, int)"); - } - - @Test - public void package_private_toString() - { - MethodSignature sig = new MethodSignature(0, "int", "packagePrivate", null, null); - - assertEquals(sig.toString(), "int packagePrivate()"); - } - - @Test - public void null_value_for_parameters_and_exceptions() - { - MethodSignature sig = new MethodSignature(Modifier.PUBLIC, "int", "doSomething", null, null); - - assertEquals(sig.toString(), "public int doSomething()"); - - assertEquals(sig.getParameterTypes(), new String[0]); - assertEquals(sig.getExceptionTypes(), new String[0]); - } - - @Test - public void getters() - { - MethodSignature sig = new MethodSignature(Modifier.PUBLIC, "int", "doSomething", - new String[] - { "java.lang.String", "int" }, new String[] - { "java.lang.RuntimeException", "org.foo.FredException" }); - - assertEquals(sig.getModifiers(), Modifier.PUBLIC); - assertEquals(sig.getReturnType(), "int"); - assertEquals(sig.getMethodName(), "doSomething"); - assertEquals(sig.getParameterTypes(), new String[] - { "java.lang.String", "int" }); - assertEquals(sig.getExceptionTypes(), new String[] - { "java.lang.RuntimeException", "org.foo.FredException" }); - } - - @Test - public void sorting() - { - MethodSignature s1 = new MethodSignature(Modifier.PUBLIC, "void", "foo", null, null); - MethodSignature s2 = new MethodSignature(Modifier.PUBLIC, "void", "bar", null, null); - MethodSignature s3 = new MethodSignature(Modifier.PUBLIC, "void", "baz", null, null); - MethodSignature s4 = new MethodSignature(Modifier.PUBLIC, "void", "baz", new String[] - { "int" }, null); - - List<MethodSignature> list = CollectionFactory.newList(Arrays.asList(s1, s2, s3, s4)); - - Collections.sort(list); - - assertEquals(list, Arrays.asList(s2, s3, s4, s1)); - } - - @Test - public void hash_code_and_equals() - { - MethodSignature sig1 = new MethodSignature(Modifier.PUBLIC, "int", "doSomething", - new String[] - { "int" }, new String[] - { "org.foo.BarException" }); - int hashCode1 = sig1.hashCode(); - - // Check that same value returned each time. - - assertEquals(sig1.hashCode(), hashCode1); - - MethodSignature sig2 = new MethodSignature(Modifier.PUBLIC, "int", "doSomething", - new String[] - { "int" }, new String[] - { "org.foo.BarException" }); - - assertEquals(sig2.hashCode(), hashCode1); - assertEquals(sig2, sig1); - - // Now work through the different properties, changing each one. - - sig2 = new MethodSignature(Modifier.PRIVATE, "int", "doSomething", new String[] - { "int" }, new String[] - { "org.foo.BarException" }); - - assertFalse(sig2.hashCode() == hashCode1); - assertFalse(sig2.equals(sig1)); - - sig2 = new MethodSignature(Modifier.PUBLIC, "long", "doSomething", new String[] - { "int" }, new String[] - { "org.foo.BarException" }); - - assertFalse(sig2.hashCode() == hashCode1); - assertFalse(sig2.equals(sig1)); - - sig2 = new MethodSignature(Modifier.PUBLIC, "int", "doSomethingElse", new String[] - { "int" }, new String[] - { "org.foo.BarException" }); - - assertFalse(sig2.hashCode() == hashCode1); - assertFalse(sig2.equals(sig1)); - - sig2 = new MethodSignature(Modifier.PUBLIC, "int", "doSomething", new String[] - { "long" }, new String[] - { "org.foo.BarException" }); - - assertFalse(sig2.hashCode() == hashCode1); - assertFalse(sig2.equals(sig1)); - - sig2 = new MethodSignature(Modifier.PUBLIC, "int", "doSomething", new String[] - { "int" }, new String[0]); - - assertFalse(sig2.hashCode() == hashCode1); - assertFalse(sig2.equals(sig1)); - - // Other equality checks - - assertFalse(sig1.equals(null)); - assertFalse(sig1.equals("")); - } - - /** Tests the simple, no arguments constructor. */ - @Test - public void short_constructor() - { - MethodSignature sig = new MethodSignature("pageLoad"); - - assertEquals(sig.getModifiers(), Modifier.PUBLIC); - assertEquals(sig.getReturnType(), "void"); - assertEquals(sig.getMethodName(), "pageLoad"); - assertEquals(sig.getParameterTypes(), new String[0]); - assertEquals(sig.getExceptionTypes(), new String[0]); - } -} +import org.testng.Assert; +import org.testng.annotations.Test; + +public class TransformMethodSignatureTest extends Assert +{ + + @Test + public void signature_toString() + { + TransformMethodSignature sig = new TransformMethodSignature(Modifier.PUBLIC, "int", "doSomething", + new String[] + { "java.lang.String", "int" }, new String[] + { "java.lang.RuntimeException", "org.foo.FredException" }); + + assertEquals( + sig.toString(), + "public int doSomething(java.lang.String, int) throws java.lang.RuntimeException, org.foo.FredException"); + + sig = new TransformMethodSignature(Modifier.ABSTRACT + Modifier.PROTECTED, "boolean", "misoHapi", + new String[0], new String[0]); + + assertEquals(sig.toString(), "protected abstract boolean misoHapi()"); + } + + @Test + public void medium_description() + { + TransformMethodSignature sig = new TransformMethodSignature(Modifier.PUBLIC, "int", "doSomething", + new String[] + { "java.lang.String", "int" }, new String[] + { "java.lang.RuntimeException", "org.foo.FredException" }); + + assertEquals(sig.getMediumDescription(), "doSomething(java.lang.String, int)"); + } + + @Test + public void package_private_toString() + { + TransformMethodSignature sig = new TransformMethodSignature(0, "int", "packagePrivate", null, null); + + assertEquals(sig.toString(), "int packagePrivate()"); + } + + @Test + public void null_value_for_parameters_and_exceptions() + { + TransformMethodSignature sig = new TransformMethodSignature(Modifier.PUBLIC, "int", "doSomething", null, null); + + assertEquals(sig.toString(), "public int doSomething()"); + + assertEquals(sig.getParameterTypes(), new String[0]); + assertEquals(sig.getExceptionTypes(), new String[0]); + } + + @Test + public void getters() + { + TransformMethodSignature sig = new TransformMethodSignature(Modifier.PUBLIC, "int", "doSomething", + new String[] + { "java.lang.String", "int" }, new String[] + { "java.lang.RuntimeException", "org.foo.FredException" }); + + assertEquals(sig.getModifiers(), Modifier.PUBLIC); + assertEquals(sig.getReturnType(), "int"); + assertEquals(sig.getMethodName(), "doSomething"); + assertEquals(sig.getParameterTypes(), new String[] + { "java.lang.String", "int" }); + assertEquals(sig.getExceptionTypes(), new String[] + { "java.lang.RuntimeException", "org.foo.FredException" }); + } + + @Test + public void sorting() + { + TransformMethodSignature foo = new TransformMethodSignature(Modifier.PUBLIC, "void", "foo", null, null); + TransformMethodSignature bar = new TransformMethodSignature(Modifier.PUBLIC, "void", "bar", null, null); + TransformMethodSignature baz0 = new TransformMethodSignature(Modifier.PUBLIC, "void", "baz", null, null); + TransformMethodSignature baz1 = new TransformMethodSignature(Modifier.PUBLIC, "void", "baz", new String[] + { "int" }, null); + + List<TransformMethodSignature> list = CollectionFactory.newList(Arrays.asList(foo, bar, baz0, baz1)); + + Collections.sort(list); + + assertEquals(list, Arrays.asList(bar, baz1, baz0, foo)); + } + + @Test + public void hash_code_and_equals() + { + TransformMethodSignature sig1 = new TransformMethodSignature(Modifier.PUBLIC, "int", "doSomething", + new String[] + { "int" }, new String[] + { "org.foo.BarException" }); + int hashCode1 = sig1.hashCode(); + + // Check that same value returned each time. + + assertEquals(sig1.hashCode(), hashCode1); + + TransformMethodSignature sig2 = new TransformMethodSignature(Modifier.PUBLIC, "int", "doSomething", + new String[] + { "int" }, new String[] + { "org.foo.BarException" }); + + assertEquals(sig2.hashCode(), hashCode1); + assertEquals(sig2, sig1); + + // Now work through the different properties, changing each one. + + sig2 = new TransformMethodSignature(Modifier.PRIVATE, "int", "doSomething", new String[] + { "int" }, new String[] + { "org.foo.BarException" }); + + assertFalse(sig2.hashCode() == hashCode1); + assertFalse(sig2.equals(sig1)); + + sig2 = new TransformMethodSignature(Modifier.PUBLIC, "long", "doSomething", new String[] + { "int" }, new String[] + { "org.foo.BarException" }); + + assertFalse(sig2.hashCode() == hashCode1); + assertFalse(sig2.equals(sig1)); + + sig2 = new TransformMethodSignature(Modifier.PUBLIC, "int", "doSomethingElse", new String[] + { "int" }, new String[] + { "org.foo.BarException" }); + + assertFalse(sig2.hashCode() == hashCode1); + assertFalse(sig2.equals(sig1)); + + sig2 = new TransformMethodSignature(Modifier.PUBLIC, "int", "doSomething", new String[] + { "long" }, new String[] + { "org.foo.BarException" }); + + assertFalse(sig2.hashCode() == hashCode1); + assertFalse(sig2.equals(sig1)); + + sig2 = new TransformMethodSignature(Modifier.PUBLIC, "int", "doSomething", new String[] + { "int" }, new String[0]); + + assertFalse(sig2.hashCode() == hashCode1); + assertFalse(sig2.equals(sig1)); + + // Other equality checks + + assertFalse(sig1.equals(null)); + assertFalse(sig1.equals("")); + } + + /** Tests the simple, no arguments constructor. */ + @Test + public void short_constructor() + { + TransformMethodSignature sig = new TransformMethodSignature("pageLoad"); + + assertEquals(sig.getModifiers(), Modifier.PUBLIC); + assertEquals(sig.getReturnType(), "void"); + assertEquals(sig.getMethodName(), "pageLoad"); + assertEquals(sig.getParameterTypes(), new String[0]); + assertEquals(sig.getExceptionTypes(), new String[0]); + } +}
