Android Open Source - EventBus Test Runner






From Project

Back to project page EventBus.

License

The source code is released under:

Apache License

If you think the Android project EventBus listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package de.greenrobot.eventperf;
/*www. j  a v  a2  s .co m*/
import java.lang.reflect.Constructor;
import java.util.ArrayList;
import java.util.List;

import android.content.Context;
import de.greenrobot.event.EventBus;

/**
 * This thread initialize all selected tests and runs them through. Also the thread skips the tests, when it is canceled
 */
public class TestRunner extends Thread {
    private List<Test> tests;
    private volatile boolean canceled;
    private final EventBus controlBus;

    public TestRunner(Context context, TestParams testParams, EventBus controlBus) {
        this.controlBus = controlBus;
        tests = new ArrayList<Test>();
        for (Class<? extends Test> testClazz : testParams.getTestClasses()) {
            try {
                Constructor<?>[] constructors = testClazz.getConstructors();
                Constructor<? extends Test> constructor = testClazz.getConstructor(Context.class, TestParams.class);
                Test test = constructor.newInstance(context, testParams);
                tests.add(test);
            } catch (Exception e) {
                throw new RuntimeException(e);
            }
        }
    }

    public void run() {

        int idx = 0;
        for (Test test : tests) {
            // Clean up and let the main thread calm down
            System.gc();
            try {
                Thread.sleep(300);
                System.gc();
                Thread.sleep(300);
            } catch (InterruptedException e) {
            }

            test.prepareTest();
            if (!canceled) {
                test.runTest();
            }
            if (!canceled) {
                boolean isLastEvent = idx == tests.size() - 1;
                controlBus.post(new TestFinishedEvent(test, isLastEvent));
            }
            idx++;
        }

    }

    public List<Test> getTests() {
        return tests;
    }

    public void cancel() {
        canceled = true;
        for (Test test : tests) {
            test.cancel();
        }
    }
}




Java Source Code List

de.greenrobot.event.AsyncPoster.java
de.greenrobot.event.BackgroundPoster.java
de.greenrobot.event.EventBusBuilder.java
de.greenrobot.event.EventBusException.java
de.greenrobot.event.EventBus.java
de.greenrobot.event.HandlerPoster.java
de.greenrobot.event.NoSubscriberEvent.java
de.greenrobot.event.PendingPostQueue.java
de.greenrobot.event.PendingPost.java
de.greenrobot.event.SubscriberExceptionEvent.java
de.greenrobot.event.SubscriberMethodFinder.java
de.greenrobot.event.SubscriberMethod.java
de.greenrobot.event.Subscription.java
de.greenrobot.event.ThreadMode.java
de.greenrobot.event.util.AsyncExecutor.java
de.greenrobot.event.util.ErrorDialogConfig.java
de.greenrobot.event.util.ErrorDialogFragmentFactory.java
de.greenrobot.event.util.ErrorDialogFragments.java
de.greenrobot.event.util.ErrorDialogManager.java
de.greenrobot.event.util.ExceptionToResourceMapping.java
de.greenrobot.event.util.HasExecutionScope.java
de.greenrobot.event.util.ThrowableFailureEvent.java
de.greenrobot.eventperf.TestEvent.java
de.greenrobot.eventperf.TestFinishedEvent.java
de.greenrobot.eventperf.TestParams.java
de.greenrobot.eventperf.TestRunnerActivity.java
de.greenrobot.eventperf.TestRunner.java
de.greenrobot.eventperf.TestSetupActivity.java
de.greenrobot.eventperf.Test.java
de.greenrobot.eventperf.testsubject.PerfTestEventBus.java
de.greenrobot.eventperf.testsubject.PerfTestOtto.java