aboutsummaryrefslogtreecommitdiffstats
path: root/bcel-builder/testsrc/org
diff options
context:
space:
mode:
authorAndy Clement <andrew.clement@gmail.com>2013-05-24 16:49:50 -0700
committerAndy Clement <andrew.clement@gmail.com>2013-05-24 16:49:50 -0700
commit6f4140ac7028b9074e694e4c0b9de8b05e4b048a (patch)
treebc9a38baa25ace5b87042b70a0f310fcf6d0a09f /bcel-builder/testsrc/org
parent0a01bd478349676a87a6afaa71a77a04de3f27a4 (diff)
downloadaspectj-6f4140ac7028b9074e694e4c0b9de8b05e4b048a.tar.gz
aspectj-6f4140ac7028b9074e694e4c0b9de8b05e4b048a.zip
More java8 support files
Diffstat (limited to 'bcel-builder/testsrc/org')
-rw-r--r--bcel-builder/testsrc/org/aspectj/apache/bcel/classfile/tests/MethodParametersTest.java86
1 files changed, 86 insertions, 0 deletions
diff --git a/bcel-builder/testsrc/org/aspectj/apache/bcel/classfile/tests/MethodParametersTest.java b/bcel-builder/testsrc/org/aspectj/apache/bcel/classfile/tests/MethodParametersTest.java
new file mode 100644
index 000000000..76a9b84d8
--- /dev/null
+++ b/bcel-builder/testsrc/org/aspectj/apache/bcel/classfile/tests/MethodParametersTest.java
@@ -0,0 +1,86 @@
+/* *******************************************************************
+ * Copyright (c) 2013 VMware
+ * All rights reserved.
+ * This program and the accompanying materials are made available
+ * under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Andy Clement - initial implementation
+ * ******************************************************************/
+package org.aspectj.apache.bcel.classfile.tests;
+
+import org.aspectj.apache.bcel.Constants;
+import org.aspectj.apache.bcel.classfile.JavaClass;
+import org.aspectj.apache.bcel.classfile.Method;
+import org.aspectj.apache.bcel.classfile.MethodParameters;
+
+public class MethodParametersTest extends BcelTestCase {
+
+ protected void setUp() throws Exception {
+ super.setUp();
+ }
+
+ public void testMethodParameters1() throws Exception {
+ JavaClass jc = getClassFromJava8Jar("Parameters");
+ Method m = getMethod(jc, "foo");
+ MethodParameters mp = (MethodParameters)getAttribute(m.getAttributes(),Constants.ATTR_METHOD_PARAMETERS);
+ assertEquals(3,mp.getParametersCount());
+ assertEquals("abc",mp.getParameterName(0));
+ assertEquals("def",mp.getParameterName(1));
+ assertEquals("ghi",mp.getParameterName(2));
+ assertFalse(mp.isFinal(0));
+ assertFalse(mp.isSynthetic(0));
+ assertFalse(mp.isMandated(0));
+ }
+
+ // this method specifies the receiver
+ public void testMethodParameters2() throws Exception {
+ JavaClass jc = getClassFromJava8Jar("Parameters");
+ Method m = getMethod(jc, "bar");
+ MethodParameters mp = (MethodParameters)getAttribute(m.getAttributes(),Constants.ATTR_METHOD_PARAMETERS);
+ assertEquals(1,mp.getParametersCount());
+ assertEquals("abc",mp.getParameterName(0));
+ assertFalse(mp.isFinal(0));
+ assertFalse(mp.isSynthetic(0));
+ assertFalse(mp.isMandated(0));
+ }
+
+ // access flags
+ public void testMethodParameters3() throws Exception {
+ JavaClass jc = getClassFromJava8Jar("Parameters$Inner");
+ Method m = getMethod(jc, "<init>");
+ MethodParameters mp = (MethodParameters)getAttribute(m.getAttributes(),Constants.ATTR_METHOD_PARAMETERS);
+ assertEquals(2,mp.getParametersCount());
+
+ assertEquals("this$0",mp.getParameterName(0));
+ assertTrue(mp.isFinal(0));
+ assertFalse(mp.isSynthetic(0));
+ assertTrue(mp.isMandated(0));
+
+ assertEquals("x",mp.getParameterName(1));
+ assertFalse(mp.isFinal(1));
+ assertFalse(mp.isSynthetic(1));
+ assertFalse(mp.isMandated(1));
+ }
+
+ // access flags
+ public void testMethodParameters4() throws Exception {
+ JavaClass jc = getClassFromJava8Jar("Parameters$Color");
+ Method m = getMethod(jc, "<init>");
+ MethodParameters mp = (MethodParameters)getAttribute(m.getAttributes(),Constants.ATTR_METHOD_PARAMETERS);
+ assertEquals(2,mp.getParametersCount());
+
+ assertEquals("$enum$name",mp.getParameterName(0));
+ assertFalse(mp.isFinal(0));
+ assertTrue(mp.isSynthetic(0));
+ assertFalse(mp.isMandated(0));
+
+ assertEquals("$enum$ordinal",mp.getParameterName(1));
+ assertFalse(mp.isFinal(1));
+ assertTrue(mp.isSynthetic(1));
+ assertFalse(mp.isMandated(1));
+ }
+
+} \ No newline at end of file