package org.needle4j.db.transaction;
import java.util.List;
import javax.persistence.EntityManager;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.needle4j.db.Address;
import org.needle4j.db.Person;
import org.needle4j.db.PersonTestdataBuilder;
import org.needle4j.db.User;
import org.needle4j.db.configuration.PersistenceConfigurationFactory;
public class TransactionHelperTest {
private EntityManager entityManager;
private TransactionHelper objectUnderTest;
@Before
public void setup() {
PersistenceConfigurationFactory persistence = new PersistenceConfigurationFactory("TestDataModel");
entityManager = persistence.getEntityManager();
objectUnderTest = new TransactionHelper(entityManager);
}
@Test
public void testLoadAllObjects_WithEntityName() throws Exception {
Person entity = objectUnderTest.persist(new PersonTestdataBuilder().build());
Assert.assertNotNull(entity.getId());
List<Person> loadAllObjects = objectUnderTest.loadAllObjects(Person.class);
Assert.assertEquals(1, loadAllObjects.size());
}
@Test
public void testLoadAllObjects_WithDefaultEntityName() throws Exception {
User entity = objectUnderTest.persist(new User());
Assert.assertNotNull(entity.getId());
List<User> loadAllObjects = objectUnderTest.loadAllObjects(User.class);
Assert.assertEquals(1, loadAllObjects.size());
}
@Test
public void testLoadAllObjects_EmptyResultList() throws Exception {
List<Address> loadAllObjects = objectUnderTest.loadAllObjects(Address.class);
Assert.assertEquals(0, loadAllObjects.size());
}
@Test(expected = IllegalArgumentException.class)
public void testLoadAllObjects_WithUnknownEntity() throws Exception {
objectUnderTest.persist(new Object());
}
}