Reusable JUnit Rules
##JPA EntityManager provider
###Installation
<dependency>
<groupId>com.airhacks.rulz</groupId>
<artifactId>em</artifactId>
<version>[RECENT_VERSION]</version>
<scope>test</scope>
</dependency>
###Sample use
import com.airhacks.rulz.em.*;
import javax.persistence.EntityManager;
import javax.persistence.EntityTransaction;
import static org.junit.Assert.assertNotNull;
import org.junit.Rule;
import org.junit.Test;
public class WorkshopTest {
@Rule
public EntityManagerProvider emProvider = EntityManagerProvider.persistenceUnit("it");
@Test
public void crud() {
EntityManager em = emProvider.em();
assertNotNull(em);
EntityTransaction tx = emProvider.tx();
assertNotNull(tx);
tx.begin();
em.merge(new Workshop("html5", "html5 for javaee developers"));
tx.commit();
}
}
##JAX-RS 2.0 Client provider
###Installation
<dependency>
<groupId>com.airhacks.rulz</groupId>
<artifactId>jaxrsclient</artifactId>
<version>[RECENT_VERSION]</version>
<scope>test</scope>
</dependency>
###Sample use
import javax.ws.rs.client.Client;
import javax.ws.rs.client.WebTarget;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertThat;
import org.junit.Rule;
import org.junit.Test;
public class JAXRSClientProviderTest {
@Rule
public JAXRSClientProvider provider = JAXRSClientProvider.buildWithURI("http://www.java.com");
@Test
public void pingJava() {
Client client = provider.client();
assertNotNull(client);
WebTarget target = provider.target();
assertNotNull(target);
Response response = target.request(MediaType.TEXT_HTML).get();
assertThat(response.getStatus(), is(200));
}
}