// Path: electrons/src/main/java/com/ziyuan/delegate/DropDelegate.java
// public class DropDelegate extends AbstractDelegatePublisher {
// 
//     private static Logger logger = LoggerFactory.getLogger(DropDelegate.class);
// 
//     public DropDelegate(EleCircuit eleCircuit) {
//         super(eleCircuit);
//     }
// 
//     public void publish(String tag, Electron electron) {
//         try {
//             super.getEleCircuit().publish(tag, electron);
//         } catch (Exception e) {
//             logger.warn("Publish failed and drop the electron : { tag: " + tag + "electron: " + electron.toString() + "}", e);
//         }
//     }
// }
// 
// Path: electrons/src/main/java/com/ziyuan/events/HomelessEle.java
// public final class HomelessEle extends Electron {
// 
//     /**
//      * Constructs a prototypical Event.
//      *
//      * @param source The object on which the Event initially occurred.
//      * @throws IllegalArgumentException if source is null.
//      */
//     public HomelessEle(Object source) {
//         super(source);
//     }
// }


import com.ziyuan.delegate.DropDelegate;
import com.ziyuan.events.HomelessEle;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
import java.lang.reflect.Method;
import java.lang.reflect.Type;
package com.ziyuan;



/**
 * Unit test for simple App.
 */
public class AppTest
        extends TestCase {
    /**
     * Create the test case
     *
     * @param testName name of the test case
     */
    public AppTest(String testName) {
        super(testName);
    }

    /**
     * @return the suite of tests being tested
     */
    public static Test suite() {
        return new TestSuite(AppTest.class);
    }

    /**
     * Rigourous Test :-)
     */
    public void testApp() {
        System.out.println(HomelessEle.class.isAssignableFrom(HomelessEle.class));
        System.out.println(2 << 6);

        ElectronsListener electronsListener = new TestListener();
        Listener ann = electronsListener.getClass().getAnnotation(Listener.class);
        System.out.println(ann.id());

        System.out.println("2".split(",")[0]);
    }

    //com.ziyuan.events.Electron
    public void testMethodParam() {
// Path: electrons/src/main/java/com/ziyuan/delegate/DropDelegate.java
// public class DropDelegate extends AbstractDelegatePublisher {
// 
//     private static Logger logger = LoggerFactory.getLogger(DropDelegate.class);
// 
//     public DropDelegate(EleCircuit eleCircuit) {
//         super(eleCircuit);
//     }
// 
//     public void publish(String tag, Electron electron) {
//         try {
//             super.getEleCircuit().publish(tag, electron);
//         } catch (Exception e) {
//             logger.warn("Publish failed and drop the electron : { tag: " + tag + "electron: " + electron.toString() + "}", e);
//         }
//     }
// }
// 
// Path: electrons/src/main/java/com/ziyuan/events/HomelessEle.java
// public final class HomelessEle extends Electron {
// 
//     /**
//      * Constructs a prototypical Event.
//      *
//      * @param source The object on which the Event initially occurred.
//      * @throws IllegalArgumentException if source is null.
//      */
//     public HomelessEle(Object source) {
//         super(source);
//     }
// }


// Path: electrons/src/test/java/com/ziyuan/AppTest.java
import com.ziyuan.delegate.DropDelegate;
import com.ziyuan.events.HomelessEle;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
import java.lang.reflect.Method;
import java.lang.reflect.Type;

package com.ziyuan;



/**
 * Unit test for simple App.
 */
public class AppTest
        extends TestCase {
    /**
     * Create the test case
     *
     * @param testName name of the test case
     */
    public AppTest(String testName) {
        super(testName);
    }

    /**
     * @return the suite of tests being tested
     */
    public static Test suite() {
        return new TestSuite(AppTest.class);
    }

    /**
     * Rigourous Test :-)
     */
    public void testApp() {
        System.out.println(HomelessEle.class.isAssignableFrom(HomelessEle.class));
        System.out.println(2 << 6);

        ElectronsListener electronsListener = new TestListener();
        Listener ann = electronsListener.getClass().getAnnotation(Listener.class);
        System.out.println(ann.id());

        System.out.println("2".split(",")[0]);
    }

    //com.ziyuan.events.Electron
    public void testMethodParam() {
        Method[] methods = DropDelegate.class.getMethods();