CCM NG: Improved createDeployment method for Arquillian tests

git-svn-id: https://svn.libreccm.org/ccm/ccm_ng@4322 8810af33-2d31-482b-a856-94f89814c4df
pull/2/head
jensp 2016-09-26 15:25:28 +00:00
parent cc84642782
commit 1c08efca11
1 changed files with 57 additions and 46 deletions

View File

@ -43,8 +43,10 @@ import org.libreccm.tests.categories.IntegrationTest;
import java.io.File; import java.io.File;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
import java.util.stream.Collectors;
import java.util.stream.IntStream; import java.util.stream.IntStream;
import javax.inject.Inject; import javax.inject.Inject;
@ -64,32 +66,32 @@ import static org.junit.Assert.*;
@Transactional(TransactionMode.COMMIT) @Transactional(TransactionMode.COMMIT)
@CreateSchema({"create_ccm_shortcuts_schema.sql"}) @CreateSchema({"create_ccm_shortcuts_schema.sql"})
public class ShortcutRepositoryTest { public class ShortcutRepositoryTest {
@Inject @Inject
private ShortcutRepository shortcutRepository; private ShortcutRepository shortcutRepository;
@PersistenceContext @PersistenceContext
private EntityManager entityManager; private EntityManager entityManager;
public ShortcutRepositoryTest() { public ShortcutRepositoryTest() {
} }
@BeforeClass @BeforeClass
public static void setUpClass() { public static void setUpClass() {
} }
@AfterClass @AfterClass
public static void tearDownClass() { public static void tearDownClass() {
} }
@Before @Before
public void setUp() { public void setUp() {
} }
@After @After
public void tearDown() { public void tearDown() {
} }
@Deployment @Deployment
public static WebArchive createDeployment() { public static WebArchive createDeployment() {
final PomEquippedResolveStage pom = Maven final PomEquippedResolveStage pom = Maven
@ -97,32 +99,38 @@ public class ShortcutRepositoryTest {
.loadPomFromFile("pom.xml"); .loadPomFromFile("pom.xml");
final PomEquippedResolveStage dependencies = pom final PomEquippedResolveStage dependencies = pom
.importCompileAndRuntimeDependencies(); .importCompileAndRuntimeDependencies();
dependencies.addDependency(MavenDependencies.createDependency(
"org.libreccm:ccm-core", ScopeType.RUNTIME, false)); final File[] libFiles = dependencies.resolve().withTransitivity()
dependencies.addDependency(MavenDependencies.createDependency(
"org.libreccm:ccm-testutils", ScopeType.RUNTIME, false));
dependencies.addDependency(MavenDependencies.createDependency(
"net.sf.saxon:Saxon-HE", ScopeType.RUNTIME, false));
dependencies.addDependency(MavenDependencies.createDependency(
"org.jboss.shrinkwrap.resolver:shrinkwrap-resolver-impl-maven",
ScopeType.RUNTIME, false));
final File[] libsWithCcmCore = dependencies.resolve().withTransitivity()
.asFile(); .asFile();
final List<File> libsList = new ArrayList<>(libsWithCcmCore.length - 1); final PomEquippedResolveStage pomCcmCore = Maven
IntStream.range(0, libsWithCcmCore.length).forEach(i -> { .resolver()
final File lib = libsWithCcmCore[i]; .loadPomFromFile("../ccm-core/pom.xml");
if (!lib.getName().startsWith("ccm-core")) { final PomEquippedResolveStage dependenciesCcmCore = pomCcmCore
libsList.add(lib); .importCompileAndRuntimeDependencies();
} final File[] ccmCoreLibFiles = dependenciesCcmCore.resolve()
}); .withTransitivity().asFile();
final List<File> libsList = Arrays.stream(libFiles)
.filter(lib -> !lib.getName().startsWith("ccm-"))
.collect(Collectors.toList());
final List<File> ccmCoreLibsList = Arrays.stream(ccmCoreLibFiles)
.filter(lib -> !lib.getName().startsWith("ccm-"))
.collect(Collectors.toList());
final File[] libs = libsList.toArray(new File[libsList.size()]); final File[] libs = libsList.toArray(new File[libsList.size()]);
Arrays.stream(libs)
for (File lib : libs) { .forEach(lib -> System.err.printf(
System.err.printf("Adding file '%s' to test archive...%n", "Adding file '%s' to test archive...%n",
lib.getName()); lib.getName()));
}
final File[] ccmCoreLibs = ccmCoreLibsList.toArray(
new File[ccmCoreLibsList.size()]);
Arrays.stream(ccmCoreLibs)
.forEach(lib -> System.err.printf(
"Adding file '%s' to test archive...%n",
lib.getName()));
return ShrinkWrap.create( return ShrinkWrap.create(
WebArchive.class, WebArchive.class,
"LibreCCM-org.libreccm.shortcuts.ShortcutRepositoryTest-web.war") "LibreCCM-org.libreccm.shortcuts.ShortcutRepositoryTest-web.war")
@ -139,56 +147,59 @@ public class ShortcutRepositoryTest {
.addPackage(org.libreccm.security.Permission.class.getPackage()) .addPackage(org.libreccm.security.Permission.class.getPackage())
.addPackage(org.libreccm.web.CcmApplication.class.getPackage()) .addPackage(org.libreccm.web.CcmApplication.class.getPackage())
.addPackage(org.libreccm.workflow.Workflow.class.getPackage()) .addPackage(org.libreccm.workflow.Workflow.class.getPackage())
.addPackage(org.libreccm.tests.categories.IntegrationTest.class
.getPackage())
.addClass(org.libreccm.shortcuts.Shortcut.class) .addClass(org.libreccm.shortcuts.Shortcut.class)
.addClass(org.libreccm.shortcuts.ShortcutRepository.class) .addClass(org.libreccm.shortcuts.ShortcutRepository.class)
.addAsLibraries(libs) .addAsLibraries(libs)
.addAsLibraries(ccmCoreLibs)
.addAsResource("test-persistence.xml", .addAsResource("test-persistence.xml",
"META-INF/persistence.xml") "META-INF/persistence.xml")
.addAsWebInfResource("test-web.xml", "WEB-INF/web.xml") .addAsWebInfResource("test-web.xml", "WEB-INF/web.xml")
.addAsWebInfResource(EmptyAsset.INSTANCE, "WEB-INF/beans.xml"); .addAsWebInfResource(EmptyAsset.INSTANCE, "WEB-INF/beans.xml");
} }
@Test @Test
@InSequence(1) @InSequence(1)
public void repoIsInjected() { public void repoIsInjected() {
assertThat(shortcutRepository, is(not(nullValue()))); assertThat(shortcutRepository, is(not(nullValue())));
} }
@Test @Test
@InSequence(2) @InSequence(2)
public void entityManagerIsInjected() { public void entityManagerIsInjected() {
assertThat(entityManager, is(not((nullValue())))); assertThat(entityManager, is(not((nullValue()))));
} }
@Test @Test
@UsingDataSet( @UsingDataSet(
"datasets/org/libreccm/shortcuts/ShortcutRepositoryTest/data.xml") "datasets/org/libreccm/shortcuts/ShortcutRepositoryTest/data.xml")
@InSequence(10) @InSequence(10)
public void findByUrlKey() { public void findByUrlKey() {
final Optional<Shortcut> members = shortcutRepository.findByUrlKey( final Optional<Shortcut> members = shortcutRepository.findByUrlKey(
"members"); "members");
final Optional<Shortcut> mitglieder = shortcutRepository.findByUrlKey( final Optional<Shortcut> mitglieder = shortcutRepository.findByUrlKey(
"mitglieder"); "mitglieder");
final Optional<Shortcut> shop = shortcutRepository.findByUrlKey("shop"); final Optional<Shortcut> shop = shortcutRepository.findByUrlKey("shop");
assertThat(members.isPresent(), is(true)); assertThat(members.isPresent(), is(true));
assertThat(members.get().getUrlKey(), is(equalTo("/members/"))); assertThat(members.get().getUrlKey(), is(equalTo("/members/")));
assertThat(members.get().getRedirect(), assertThat(members.get().getRedirect(),
is(equalTo("/ccm/navigation/members"))); is(equalTo("/ccm/navigation/members")));
assertThat(mitglieder.isPresent(), is(true)); assertThat(mitglieder.isPresent(), is(true));
assertThat(mitglieder.get().getUrlKey(), is(equalTo("/mitglieder/"))); assertThat(mitglieder.get().getUrlKey(), is(equalTo("/mitglieder/")));
assertThat(mitglieder.get().getRedirect(), assertThat(mitglieder.get().getRedirect(),
is(equalTo("/ccm/navigation/members"))); is(equalTo("/ccm/navigation/members")));
assertThat(shop.isPresent(), is(true)); assertThat(shop.isPresent(), is(true));
assertThat(shop.get().getUrlKey(), assertThat(shop.get().getUrlKey(),
is(equalTo("/shop/"))); is(equalTo("/shop/")));
assertThat(shop.get().getRedirect(), assertThat(shop.get().getRedirect(),
is(equalTo("http://www.example.com"))); is(equalTo("http://www.example.com")));
} }
@Test @Test
@UsingDataSet( @UsingDataSet(
"datasets/org/libreccm/shortcuts/ShortcutRepositoryTest/data.xml") "datasets/org/libreccm/shortcuts/ShortcutRepositoryTest/data.xml")
@ -196,17 +207,17 @@ public class ShortcutRepositoryTest {
public void findByUrlKeyNotExisting() { public void findByUrlKeyNotExisting() {
final Optional<Shortcut> result = shortcutRepository.findByUrlKey( final Optional<Shortcut> result = shortcutRepository.findByUrlKey(
"foo"); "foo");
assertThat(result, is(not(nullValue()))); assertThat(result, is(not(nullValue())));
assertThat(result.isPresent(), is(false)); assertThat(result.isPresent(), is(false));
} }
@Test @Test
@UsingDataSet( @UsingDataSet(
"datasets/org/libreccm/shortcuts/ShortcutRepositoryTest/data.xml") "datasets/org/libreccm/shortcuts/ShortcutRepositoryTest/data.xml")
@InSequence(30) @InSequence(30)
public void findByRedirect() { public void findByRedirect() {
final List<Shortcut> toMembers = shortcutRepository.findByRedirect( final List<Shortcut> toMembers = shortcutRepository.findByRedirect(
"/ccm/navigation/members"); "/ccm/navigation/members");
assertThat(toMembers.size(), is(2)); assertThat(toMembers.size(), is(2));
@ -216,7 +227,7 @@ public class ShortcutRepositoryTest {
assertThat(toMembers.get(1).getUrlKey(), is(equalTo("/mitglieder/"))); assertThat(toMembers.get(1).getUrlKey(), is(equalTo("/mitglieder/")));
assertThat(toMembers.get(1).getRedirect(), assertThat(toMembers.get(1).getRedirect(),
is(equalTo("/ccm/navigation/members"))); is(equalTo("/ccm/navigation/members")));
final List<Shortcut> toExampleCom = shortcutRepository.findByRedirect( final List<Shortcut> toExampleCom = shortcutRepository.findByRedirect(
"http://www.example.com"); "http://www.example.com");
assertThat(toExampleCom.size(), is(1)); assertThat(toExampleCom.size(), is(1));
@ -224,7 +235,7 @@ public class ShortcutRepositoryTest {
assertThat(toExampleCom.get(0).getRedirect(), assertThat(toExampleCom.get(0).getRedirect(),
is(equalTo("http://www.example.com"))); is(equalTo("http://www.example.com")));
} }
@Test @Test
@UsingDataSet( @UsingDataSet(
"datasets/org/libreccm/shortcuts/ShortcutRepositoryTest/data.xml") "datasets/org/libreccm/shortcuts/ShortcutRepositoryTest/data.xml")
@ -232,7 +243,7 @@ public class ShortcutRepositoryTest {
public void findByRedirectNotExisting() { public void findByRedirectNotExisting() {
final List<Shortcut> result = shortcutRepository.findByRedirect( final List<Shortcut> result = shortcutRepository.findByRedirect(
"http://www.example.org"); "http://www.example.org");
assertThat(result, is(not(nullValue()))); assertThat(result, is(not(nullValue())));
assertThat(result.isEmpty(), is(true)); assertThat(result.isEmpty(), is(true));
} }