package org.ovirt.engine.arquillian.database; import java.util.Collection; import org.jboss.arquillian.core.api.Instance; import org.jboss.arquillian.core.api.annotation.Inject; import org.jboss.arquillian.core.api.annotation.Observes; import org.jboss.arquillian.core.spi.ServiceLoader; import org.jboss.arquillian.test.spi.TestEnricher; import org.jboss.arquillian.test.spi.event.suite.After; import org.jboss.arquillian.test.spi.event.suite.Before; import org.jboss.arquillian.test.spi.event.suite.BeforeSuite; public class ArquillianRuleExecutor { @Inject Instance<ServiceLoader> serviceLoader; Collection<TestEnricher> testEnrichers; private Collection<ArquillianRule> arquillianRules; public void beforeSuite(@Observes BeforeSuite test) throws IllegalAccessException { testEnrichers = serviceLoader.get().all(TestEnricher.class); arquillianRules = serviceLoader.get().all(ArquillianRule.class); } public void before(@Observes Before test) throws IllegalAccessException { for (ArquillianRule rule : arquillianRules) { for (TestEnricher enricher : testEnrichers) { enricher.enrich(rule); } rule.before(test); } } public void after(@Observes After test) throws IllegalAccessException { for (ArquillianRule rule : arquillianRules) { rule.after(test); } } }