Introduction to Testing with Arquillian (#1877)
This commit is contained in:
parent
a6168a139b
commit
e338d3eb0e
|
@ -0,0 +1,10 @@
|
||||||
|
package com.baeldung.arquillian;
|
||||||
|
|
||||||
|
import javax.ejb.Stateless;
|
||||||
|
|
||||||
|
@Stateless
|
||||||
|
public class CapsConvertor {
|
||||||
|
public ConvertToLowerCase getLowerCase(){
|
||||||
|
return new ConvertToLowerCase();
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,14 @@
|
||||||
|
package com.baeldung.arquillian;
|
||||||
|
|
||||||
|
import javax.ejb.Stateless;
|
||||||
|
import javax.inject.Inject;
|
||||||
|
|
||||||
|
@Stateless
|
||||||
|
public class CapsService {
|
||||||
|
@Inject
|
||||||
|
private CapsConvertor capsConvertor;
|
||||||
|
|
||||||
|
public String getConvertedCaps(final String word){
|
||||||
|
return capsConvertor.getLowerCase().convert(word);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,37 @@
|
||||||
|
package com.baeldung.arquillian;
|
||||||
|
|
||||||
|
import javax.persistence.Entity;
|
||||||
|
import javax.persistence.GeneratedValue;
|
||||||
|
import javax.persistence.Id;
|
||||||
|
import javax.validation.constraints.NotNull;
|
||||||
|
|
||||||
|
@Entity
|
||||||
|
public class Car {
|
||||||
|
@Id
|
||||||
|
@GeneratedValue
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
public Long getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(final Long id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(final String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "Car [id=" + id + ", name=" + name + "]";
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,35 @@
|
||||||
|
package com.baeldung.arquillian;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import javax.ejb.Stateless;
|
||||||
|
import javax.persistence.EntityManager;
|
||||||
|
import javax.persistence.PersistenceContext;
|
||||||
|
import javax.persistence.Query;
|
||||||
|
|
||||||
|
@Stateless
|
||||||
|
public class CarEJB {
|
||||||
|
@PersistenceContext(unitName = "defaultPersistenceUnit")
|
||||||
|
private EntityManager em;
|
||||||
|
|
||||||
|
public Car saveCar(final Car car) {
|
||||||
|
em.persist(car);
|
||||||
|
return car;
|
||||||
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
public List<Car> findAllCars() {
|
||||||
|
final Query query = em.createQuery("SELECT b FROM Car b ORDER BY b.name ASC");
|
||||||
|
List<Car> entries = query.getResultList();
|
||||||
|
if (entries == null) {
|
||||||
|
entries = new ArrayList<Car>();
|
||||||
|
}
|
||||||
|
return entries;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void deleteCar(Car car) {
|
||||||
|
car = em.merge(car);
|
||||||
|
em.remove(car);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,13 @@
|
||||||
|
package com.baeldung.arquillian;
|
||||||
|
|
||||||
|
import java.io.PrintStream;
|
||||||
|
|
||||||
|
public class Component {
|
||||||
|
public void sendMessage(PrintStream to, String msg) {
|
||||||
|
to.println(message(msg));
|
||||||
|
}
|
||||||
|
|
||||||
|
public String message(String msg) {
|
||||||
|
return "Message, " + msg;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,7 @@
|
||||||
|
package com.baeldung.arquillian;
|
||||||
|
|
||||||
|
public class ConvertToLowerCase {
|
||||||
|
public String convert(String word){
|
||||||
|
return word.toLowerCase();
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,13 @@
|
||||||
|
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="1.0">
|
||||||
|
<persistence-unit name="defaultPersistenceUnit" transaction-type="JTA">
|
||||||
|
<class>com.baeldung.arquillian.Car</class>
|
||||||
|
<properties>
|
||||||
|
<property name="javax.persistence.jdbc.driver" value="org.hsqldb.jdbcDriver"/>
|
||||||
|
<property name="javax.persistence.jdbc.url" value="jdbc:hsqldb:mem:testdb"/>
|
||||||
|
<property name="javax.persistence.jdbc.user" value="sa"/>
|
||||||
|
<property name="javax.persistence.jdbc.password" value=""/>
|
||||||
|
<property name="eclipselink.ddl-generation" value="create-tables"/>
|
||||||
|
<property name="hibernate.hbm2ddl.auto" value="update" />
|
||||||
|
</properties>
|
||||||
|
</persistence-unit>
|
||||||
|
</persistence>
|
|
@ -0,0 +1,73 @@
|
||||||
|
package com.baeldung.arquillan;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertEquals;
|
||||||
|
import static org.junit.Assert.assertTrue;
|
||||||
|
|
||||||
|
import javax.inject.Inject;
|
||||||
|
|
||||||
|
import org.jboss.arquillian.container.test.api.Deployment;
|
||||||
|
import org.jboss.arquillian.junit.Arquillian;
|
||||||
|
import org.jboss.shrinkwrap.api.ShrinkWrap;
|
||||||
|
import org.jboss.shrinkwrap.api.asset.EmptyAsset;
|
||||||
|
import org.jboss.shrinkwrap.api.spec.JavaArchive;
|
||||||
|
import org.junit.Assert;
|
||||||
|
import org.junit.Test;
|
||||||
|
import org.junit.runner.RunWith;
|
||||||
|
|
||||||
|
import com.baeldung.arquillian.CapsConvertor;
|
||||||
|
import com.baeldung.arquillian.CapsService;
|
||||||
|
import com.baeldung.arquillian.Car;
|
||||||
|
import com.baeldung.arquillian.CarEJB;
|
||||||
|
import com.baeldung.arquillian.Component;
|
||||||
|
import com.baeldung.arquillian.ConvertToLowerCase;
|
||||||
|
|
||||||
|
@RunWith(Arquillian.class)
|
||||||
|
public class ArquillianTest {
|
||||||
|
|
||||||
|
@Deployment
|
||||||
|
public static JavaArchive createDeployment() {
|
||||||
|
return ShrinkWrap.create(JavaArchive.class).addClasses(Component.class, CapsService.class, CapsConvertor.class, ConvertToLowerCase.class, Car.class, CarEJB.class).addAsResource("META-INF/persistence.xml").addAsManifestResource(EmptyAsset.INSTANCE,
|
||||||
|
"beans.xml");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
Component component;
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenMessage_WhenComponentSendMessage_ThenMessageReceived() {
|
||||||
|
Assert.assertEquals("Message, MESSAGE", component.message(("MESSAGE")));
|
||||||
|
component.sendMessage(System.out, "MESSAGE");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
private CapsService capsService;
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenWord_WhenUppercase_ThenLowercase() {
|
||||||
|
assertTrue("capitalize".equals(capsService.getConvertedCaps("CAPITALIZE")));
|
||||||
|
assertEquals("capitalize", capsService.getConvertedCaps("CAPITALIZE"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
private CarEJB carEJB;
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testCars() {
|
||||||
|
assertTrue(carEJB.findAllCars().isEmpty());
|
||||||
|
Car c1 = new Car();
|
||||||
|
c1.setName("Impala");
|
||||||
|
Car c2 = new Car();
|
||||||
|
c2.setName("Maverick");
|
||||||
|
Car c3 = new Car();
|
||||||
|
c3.setName("Aspen");
|
||||||
|
Car c4 = new Car();
|
||||||
|
c4.setName("Lincoln");
|
||||||
|
carEJB.saveCar(c1);
|
||||||
|
carEJB.saveCar(c2);
|
||||||
|
carEJB.saveCar(c3);
|
||||||
|
carEJB.saveCar(c4);
|
||||||
|
assertEquals(4, carEJB.findAllCars().size());
|
||||||
|
carEJB.deleteCar(c4);
|
||||||
|
assertEquals(3, carEJB.findAllCars().size());
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,13 @@
|
||||||
|
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="1.0">
|
||||||
|
<persistence-unit name="defaultPersistenceUnit" transaction-type="JTA">
|
||||||
|
<class>com.baeldung.arquillian.Car</class>
|
||||||
|
<properties>
|
||||||
|
<property name="javax.persistence.jdbc.driver" value="org.hsqldb.jdbcDriver"/>
|
||||||
|
<property name="javax.persistence.jdbc.url" value="jdbc:hsqldb:mem:testdb"/>
|
||||||
|
<property name="javax.persistence.jdbc.user" value="sa"/>
|
||||||
|
<property name="javax.persistence.jdbc.password" value=""/>
|
||||||
|
<property name="eclipselink.ddl-generation" value="create-tables"/>
|
||||||
|
<property name="hibernate.hbm2ddl.auto" value="update" />
|
||||||
|
</properties>
|
||||||
|
</persistence-unit>
|
||||||
|
</persistence>
|
Loading…
Reference in New Issue