package org.javaee7.jpa.converter;
import static java.util.Arrays.asList;
import static org.jboss.shrinkwrap.api.ArchivePaths.create;
import static org.jboss.shrinkwrap.api.ShrinkWrap.create;
import static org.jboss.shrinkwrap.api.asset.EmptyAsset.INSTANCE;
import static org.junit.Assert.assertTrue;
import java.util.List;
import javax.inject.Inject;
import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.arquillian.junit.Arquillian;
import org.jboss.shrinkwrap.api.spec.WebArchive;
import org.junit.Test;
import org.junit.runner.RunWith;
@RunWith(Arquillian.class)
public class EmployeeRepositoryTest {
@Deployment
public static WebArchive createDeployment() {
WebArchive war = create(WebArchive.class)
.addPackage("org.javaee7.jpa.converter")
.addAsResource("META-INF/persistence.xml")
.addAsResource("META-INF/create.sql")
.addAsResource("META-INF/drop.sql")
.addAsResource("META-INF/load.sql")
.addAsWebInfResource(INSTANCE, create("beans.xml"));
System.out.println(war.toString(true));
return war;
}
@Inject
private EmployeeRepository repository;
@Test
public void should_return_all_employee_records() throws Exception {
// When
final List<Employee> actualEmployees = repository.all();
// Then
assertTrue(actualEmployees.size() == 6);
List<Employee> expectedEmployees = asList(
employee("Leonard", "11-22-33-44"), employee("Sheldon", "22-33-44-55"),
employee("Penny", "33-44-55-66"), employee("Raj", "44-55-66-77"),
employee("Howard", "55-66-77-88"), employee("Bernadette", "66-77-88-99"));
for (Employee employee : expectedEmployees) {
assertTrue(actualEmployees.contains(employee));
}
}
// -- Test utility method
private static Employee employee(String name, String creditCardNumber) {
return new Employee(name, new CreditCard(creditCardNumber));
}
}