Package test

Source Code of test.MethodComparatorTest$TestInterface

/**************************************************************************************
* Copyright (c) Jonas Bon�r, Alexandre Vasseur. All rights reserved.                 *
* http://aspectwerkz.codehaus.org                                                    *
* ---------------------------------------------------------------------------------- *
* The software in this package is published under the terms of the LGPL license      *
* a copy of which has been included with this distribution in the license.txt file.  *
**************************************************************************************/
package test;

import junit.framework.TestCase;
import org.codehaus.aspectwerkz.reflect.MethodComparator;
import org.codehaus.aspectwerkz.reflect.MethodComparator;
import org.codehaus.aspectwerkz.reflect.ClassInfo;
import org.codehaus.aspectwerkz.reflect.MethodInfo;
import org.codehaus.aspectwerkz.reflect.impl.java.JavaClassInfo;

import java.lang.reflect.Array;
import java.lang.reflect.Method;

/**
* @author <a href="mailto:jboner@codehaus.org">Jonas Bon�r </a>
*/
public class MethodComparatorTest extends TestCase {
    public void testCompare() {
        Method method1 = null;
        Method method11 = null;
        Method method2 = null;
        Method method3 = null;
        Method method4 = null;
        Method method5 = null;
        Method method6 = null;
        try {
            method1 = this.getClass().getMethod("__generated$_AW_$method1", new Class[]{});
            method11 = this.getClass().getMethod("__generated$_AW_$method1$x", new Class[]{});
            method2 = this.getClass().getMethod(
                    "__generated$_AW_$method1", new Class[]{
                        int.class
                    }
            );
            method3 = this.getClass().getMethod("__generated$_AW_$method2", new Class[]{});
            method4 = this.getClass().getMethod(
                    "__generated$_AW_$method2", new Class[]{
                        int.class
                    }
            );
            method5 = this.getClass().getMethod(
                    "__generated$_AW_$method2", new Class[]{
                        String.class
                    }
            );
            method6 = this.getClass().getMethod(
                    "__generated$_AW_$method2", new Class[]{
                        Array.newInstance(String.class, 1).getClass()
                    }
            );
        } catch (Exception e) {
            throw new RuntimeException("exception unexpected: " + e);
        }
        assertTrue(
                0 == MethodComparator.getInstance(MethodComparator.PREFIXED_METHOD).compare(
                        method1,
                        method1
                )
        );
        assertTrue(
                0 == MethodComparator.getInstance(MethodComparator.PREFIXED_METHOD).compare(
                        method2,
                        method2
                )
        );
        assertTrue(
                0 > MethodComparator.getInstance(MethodComparator.PREFIXED_METHOD).compare(
                        method1,
                        method2
                )
        );
        assertTrue(
                0 < MethodComparator.getInstance(MethodComparator.PREFIXED_METHOD).compare(
                        method2,
                        method1
                )
        );
        assertTrue(
                0 > MethodComparator.getInstance(MethodComparator.PREFIXED_METHOD).compare(
                        method1,
                        method11
                )
        );
        assertTrue(
                0 > MethodComparator.getInstance(MethodComparator.PREFIXED_METHOD).compare(
                        method3,
                        method4
                )
        );
        assertTrue(
                0 < MethodComparator.getInstance(MethodComparator.PREFIXED_METHOD).compare(
                        method4,
                        method3
                )
        );
        assertTrue(
                0 > MethodComparator.getInstance(MethodComparator.PREFIXED_METHOD).compare(
                        method1,
                        method4
                )
        );
        assertTrue(
                0 < MethodComparator.getInstance(MethodComparator.PREFIXED_METHOD).compare(
                        method4,
                        method1
                )
        );
        assertTrue(
                0 < MethodComparator.getInstance(MethodComparator.PREFIXED_METHOD).compare(
                        method3,
                        method2
                )
        );
        assertTrue(
                0 > MethodComparator.getInstance(MethodComparator.PREFIXED_METHOD).compare(
                        method2,
                        method3
                )
        );
        assertTrue(
                0 > MethodComparator.getInstance(MethodComparator.PREFIXED_METHOD).compare(
                        method4,
                        method5
                )
        );

        // AW-104 test
        assertTrue(
                0 > MethodComparator.getInstance(MethodComparator.PREFIXED_METHOD).compare(
                        method5,
                        method6
                )
        );
    }

    public static void main(String[] args) {
        junit.textui.TestRunner.run(suite());
    }

    public static junit.framework.Test suite() {
        return new junit.framework.TestSuite(MethodComparatorTest.class);
    }

    public void __generated$_AW_$method1() {
    }

    public void __generated$_AW_$method1$x() {
    }

    public void __generated$_AW_$method1(int i) {
    }

    public void __generated$_AW_$method2() {
    }

    public void __generated$_AW_$method2(int i) {
    }

    public void __generated$_AW_$method2(String i) {
    }

    public void __generated$_AW_$method2(String[] i) {
    }

    public static interface TestInterface {
         void test(String s);//test1
         void test(String[] s);//test2
    }

    public void testMethodComparison() {
        ClassInfo theTest = JavaClassInfo.getClassInfo(TestInterface.class);
        MethodInfo test1 = null;
        MethodInfo test2 = null;
        for (int i = 0; i < theTest.getMethods().length; i++) {
            MethodInfo methodInfo = theTest.getMethods()[i];
            if (methodInfo.getName().equals("test")) {
                if (methodInfo.getParameterTypes()[0].getSignature().startsWith("[")) {
                    test2 = methodInfo;
                } else {
                    test1 = methodInfo;
                }
            }
        }

        assertTrue(
                0 > MethodComparator.getInstance(MethodComparator.METHOD_INFO).compare(
                        test1,
                        test2
                ));
        assertTrue(
                0 == MethodComparator.getInstance(MethodComparator.METHOD_INFO).compare(
                        test1,
                        test1
                ));

   }

}
TOP

Related Classes of test.MethodComparatorTest$TestInterface

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.