Package org.ops4j.pax.exam.regression.plumbing

Source Code of org.ops4j.pax.exam.regression.plumbing.SimpleMultiTest

package org.ops4j.pax.exam.regression.plumbing;

import static org.ops4j.pax.exam.spi.PaxExamRuntime.createTestSystem;
import static org.ops4j.pax.exam.spi.PaxExamRuntime.getTestContainerFactory;

import java.io.IOException;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.util.ArrayList;
import java.util.List;

import org.junit.Test;
import org.ops4j.pax.exam.ExamSystem;
import org.ops4j.pax.exam.Option;
import org.ops4j.pax.exam.TestAddress;
import org.ops4j.pax.exam.TestContainer;
import org.ops4j.pax.exam.TestProbeBuilder;
import org.ops4j.pax.exam.TestProbeProvider;

/**
*
*/
public class SimpleMultiTest {

    @Test
    public void bareRunTest() throws Exception {
        Option[] options = new Option[] {};
        ExamSystem system = createTestSystem(options);
        TestProbeProvider p = makeProbe(system);

        // the parse will split all single containers
        for (TestContainer testContainer : getTestContainerFactory().create(system)) {
            try {
                testContainer.start();
                testContainer.install(p.getStream());
                for (TestAddress test : p.getTests()) {
                    testContainer.call(test);
                }
            }
            finally {
                testContainer.stop();
            }
        }
        system.clear();
    }

    private TestProbeProvider makeProbe(ExamSystem system) throws IOException {
        TestProbeBuilder probe = system.createProbe();
        probe.addTests(Probe.class, getAllMethods(Probe.class));
        return probe.build();
    }

    private Method[] getAllMethods(Class<?> c) {
        List<Method> methods = new ArrayList<Method>();
        for (Method m : c.getDeclaredMethods()) {
            if (m.getModifiers() == Modifier.PUBLIC) {
                methods.add(m);
            }
        }
        return methods.toArray(new Method[methods.size()]);

    }
}
TOP

Related Classes of org.ops4j.pax.exam.regression.plumbing.SimpleMultiTest

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.