Skip to content

Instantly share code, notes, and snippets.

@thjanssen
Created April 19, 2015 02:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save thjanssen/23bdf23060487cad30ea to your computer and use it in GitHub Desktop.
Save thjanssen/23bdf23060487cad30ea to your computer and use it in GitHub Desktop.
JBoss Forge - Speedup your enterprise development - Part III Integration Tests with Arquillian (http://www.thoughts-on-java.org/2013/10/jboss-forge-speedup-your-enterprise.html)
@RunWith(Arquillian.class)
public class AuthorEndpointTest
{
@Inject
private AuthorEndpoint authorendpoint;
@Deployment
public static JavaArchive createDeployment()
{
return ShrinkWrap.create(JavaArchive.class, "test.jar")
.addClass(AuthorEndpoint.class)
.addAsManifestResource("META-INF/persistence.xml", "persistence.xml")
.addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml");
}
@Test
public void testIsDeployed()
{
Assert.assertNotNull(authorendpoint);
}
}
@RunWith(Arquillian.class)
public class AuthorEndpointTest
{
...
@Deployment
public static JavaArchive createDeployment()
{
return ShrinkWrap.create(JavaArchive.class, "test.jar")
.addClasses(AuthorEndpoint.class, Author.class, Book.class)
.addAsManifestResource("META-INF/persistence.xml", "persistence.xml")
.addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml");
}
...
}
@Test
public void createAuthor() {
// create the author
Author author = new Author();
author.setFirstName("J. R. R.");
author.setLastName("Tolkien");
// add a book
Set<Book> books = new HashSet<Book>();
Book book = new Book();
book.setAuthor(author);
book.setTitle("Lord of the rings");
books.add(book);
author.setBooks(books);
// store the author in the database
authorendpoint.create(author);
// verify
Assert.assertEquals("Author",(Long) 1L, author.getId());
Assert.assertEquals("Books", 1, author.getBooks().size());
Assert.assertEquals("Book",(Long) 2L, author.getBooks().toArray(new Book[1])[0].getId());
}
[ForgeExample] ForgeExample $ forge install-plugin arquillian
[ForgeExample] ForgeExample $ forge find-plugin test
Connecting to remote repository
[https://raw.github.com/forge/plugin-repository/master/repository.yaml]
... connected!
- arquillian (org.arquillian.forge:arquillian-plugin:::1.0.0-SNAPSHOT)
Author: Paul Bakker <paul.bakker.nl@gmail.com>
Website: http://www.jboss.org/arquillian
Location: https://github.com/forge/plugin-arquillian.git
Tags: arquillian, jboss, testing, junit, testng, integration testing,
tests, CDI, java ee
Description: Integration Testing Framework
- jacoco (org.jboss.forge.jacoco:plugin-jacoco:::1.0.0-SNAPSHOT)
Author: Tomas Remes <tomas.remes@gmail.com>
Website: https://github.com/tremes/plugin-jacoco
Location: https://github.com/tremes/plugin-jacoco.git
Tags: jacoco, code coverage, java, testing
Description: This plugin provides installing, running and reporting
code coverage with JaCoCo.
- nosqlunit (com.lordofthejars:nosqlunit-forge-plugin:::1.0.0)
Author: Alex Soto <asotobu@gmail.com>
Website: https://github.com/lordofthejars/nosql-unit
Location: https://github.com/lordofthejars/nosqlunit-forge-plugin
Tags: test, junit, nosql, persistence tests, nosqlunit
Description: This plugin provides a way to create tests for NoSQL
databases using NoSQLUnit .
- beanstest (de.adorsys.beanstest.plugin:forge-beanstest-plugin:::1.0)
Author: Christian Brandenstein <cbr@adorsys.de>
Website: https://github.com/ersatzcapo/forge-beanstest
Location: https://github.com/ersatzcapo/forge-beanstest.git
Tags: test, junit, cdi, mockito
Description: Enables simple junit testing with CDI beans.
Also supports mockito mock generation and a test persistence setup with hsqldb.
- arquillian-extension (org.arquillian.forge:arquillian-extension-plugin:::1.0.0-SNAPSHOT)
Author: Jérémie Lagarde <jer@printstacktrace.org>
Website: http://www.jboss.org/arquillian
Location: https://github.com/jerr/jbossforge-plugin-arquillian-extension.git
Tags: arquillian, jboss, testing, junit, testng, integration testing,
tests, drone, graphene, selenium
Description: Integration Testing Framework Extension for Arquillian Plugin
[ForgeExample] ForgeExample $ arquillian create-test
--class blog.thoughts.on.java.forge.rest.AuthorEndpoint.java --enableJPA
[ForgeExample] ForgeExample $ test --profile arq-jboss_as_remote_7.x
...
Results :
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
[INFO] ------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------
[ForgeExample] ForgeExample $ arquillian setup --containerType REMOTE
--containerName JBOSS_AS_REMOTE_7.X
Which version of Arquillian do you want to install?
1 - [org.jboss.arquillian:arquillian-bom:pom::1.0.0-SNAPSHOT]
2 - [org.jboss.arquillian:arquillian-bom:pom::1.0.0.Beta1]
3 - [org.jboss.arquillian:arquillian-bom:pom::1.0.0.Beta2]
4 - [org.jboss.arquillian:arquillian-bom:pom::1.0.0.CR1]
5 - [org.jboss.arquillian:arquillian-bom:pom::1.0.0.CR1-as734-SNAPSHOT]
6 - [org.jboss.arquillian:arquillian-bom:pom::1.0.0.CR2]
7 - [org.jboss.arquillian:arquillian-bom:pom::1.0.0.CR3]
8 - [org.jboss.arquillian:arquillian-bom:pom::1.0.0.CR4]
9 - [org.jboss.arquillian:arquillian-bom:pom::1.0.0.CR5]
10 - [org.jboss.arquillian:arquillian-bom:pom::1.0.0.CR6]
11 - [org.jboss.arquillian:arquillian-bom:pom::1.0.0.CR7]
12 - [org.jboss.arquillian:arquillian-bom:pom::1.0.0.CR8]
13 - [org.jboss.arquillian:arquillian-bom:pom::1.0.0.Final]
14 - [org.jboss.arquillian:arquillian-bom:pom::1.0.1.Final]
15 - [org.jboss.arquillian:arquillian-bom:pom::1.0.2.Final]
16 - [org.jboss.arquillian:arquillian-bom:pom::1.0.3.Final]
17 - [org.jboss.arquillian:arquillian-bom:pom::1.0.4.Final]
18 - [org.jboss.arquillian:arquillian-bom:pom::1.1.0.Final]
19 - [org.jboss.arquillian:arquillian-bom:pom::1.1.1.Final]*
? Choose an option by typing the number of the selection [*-default] [0]
Which version of JUnit do you want to install?
1 - [junit:junit:::3.7]
2 - [junit:junit:::3.8]
3 - [junit:junit:::3.8.1]
4 - [junit:junit:::3.8.2]
5 - [junit:junit:::3.8.2-brew]
6 - [junit:junit:::4.0]
7 - [junit:junit:::4.1]
8 - [junit:junit:::4.2]
9 - [junit:junit:::4.3]
10 - [junit:junit:::4.3.1]
11 - [junit:junit:::4.4]
12 - [junit:junit:::4.5]
13 - [junit:junit:::4.6]
14 - [junit:junit:::4.7]
15 - [junit:junit:::4.8]
16 - [junit:junit:::4.8.1]
17 - [junit:junit:::4.8.2]
18 - [junit:junit:::4.9]
19 - [junit:junit:::4.10]
20 - [junit:junit:::4.11-beta-1]
21 - [junit:junit:::4.11]*
22 - [junit:junit:::4.12-SNAPSHOT]
? Choose an option by typing the number of the selection [*-default] [0]
What version of jboss-as-arquillian-container-remote do you want to use?
1 - [org.jboss.as:jboss-as-arquillian-container-remote:::7.0.0.Beta1]
2 - [org.jboss.as:jboss-as-arquillian-container-remote:::7.0.0.Beta2]
3 - [org.jboss.as:jboss-as-arquillian-container-remote:::7.0.0.Beta3]
4 - [org.jboss.as:jboss-as-arquillian-container-remote:::7.0.0.CR1]
5 - [org.jboss.as:jboss-as-arquillian-container-remote:::7.0.0.Final]
6 - [org.jboss.as:jboss-as-arquillian-container-remote:::7.0.1.Final]
7 - [org.jboss.as:jboss-as-arquillian-container-remote:::7.0.2.Final]
8 - [org.jboss.as:jboss-as-arquillian-container-remote:::7.1.0-alrwebinar-SNAPSHOT]
9 - [org.jboss.as:jboss-as-arquillian-container-remote:::7.1.0.Alpha1-SNAPSHOT]
10 - [org.jboss.as:jboss-as-arquillian-container-remote:::7.1.0.Beta1]
11 - [org.jboss.as:jboss-as-arquillian-container-remote:::7.1.0.Beta1b]
12 - [org.jboss.as:jboss-as-arquillian-container-remote:::7.1.0.CR1]
13 - [org.jboss.as:jboss-as-arquillian-container-remote:::7.1.0.CR1b]
14 - [org.jboss.as:jboss-as-arquillian-container-remote:::7.1.0.Final]
15 - [org.jboss.as:jboss-as-arquillian-container-remote:::7.1.1.Final]
16 - [org.jboss.as:jboss-as-arquillian-container-remote:::7.1.2.Final]
17 - [org.jboss.as:jboss-as-arquillian-container-remote:::7.1.3.Final]
18 - [org.jboss.as:jboss-as-arquillian-container-remote:::7.2.0.Final]*
? Choose an option by typing the number of the selection [*-default] [0] 15
Wrote D:\/dev/wrk4/forge/ForgeExample/pom.xml
Wrote D:\/dev/wrk4/forge/ForgeExample/src/test/resources/arquillian.xml
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment