package eu.drus.jpa.unit.test; import org.apache.deltaspike.cdise.api.CdiContainer; import org.apache.deltaspike.cdise.api.CdiContainerLoader; import org.concordion.api.AfterSpecification; import org.concordion.api.BeforeSpecification; import org.concordion.api.Resource; import org.concordion.api.extension.ConcordionExtender; import org.concordion.api.extension.ConcordionExtension; import org.concordion.api.extension.Extension; import org.concordion.internal.ClassNameAndTypeBasedSpecificationLocator; import org.junit.runner.RunWith; import eu.drus.jpa.unit.api.concordion.JpaUnitConcordionRunner; @RunWith(JpaUnitConcordionRunner.class) public class CdiEnabledNewDepositorFixture extends AbstractCdiEnabledNewDepositorFixture { @Extension private ConcordionExtension ext = new ConcordionExtension() { @Override public void addTo(final ConcordionExtender concordionExtender) { concordionExtender.withSpecificationLocator(new ClassNameAndTypeBasedSpecificationLocator() { @Override public Resource locateSpecification(final Object fixtureObject, final String typeSuffix) { String slashedClassName = fixtureObject.getClass().getName().replaceAll("\\.", "/"); slashedClassName = slashedClassName.substring(0, slashedClassName.indexOf('$')); String fixturePath = slashedClassName.replace(CdiEnabledNewDepositorFixture.class.getSimpleName(), NewDepositorFixture.class.getSimpleName()); fixturePath = fixturePath.replaceAll("(Fixture|Test)$", ""); return new Resource("/" + fixturePath + "." + typeSuffix); } }); } }; private static CdiContainer cdiContainer; @BeforeSpecification public static void startContainer() { cdiContainer = CdiContainerLoader.getCdiContainer(); cdiContainer.boot(); } @AfterSpecification public static void stopContainer() { cdiContainer.shutdown(); } }