package net.twasink.hsqldbtest;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import java.util.List;
import static org.junit.Assert.*;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("/applicationContext.xml")
//@Transactional
public class FooTest {
@PersistenceContext
private EntityManager entityManager;
@Test
public void shouldHaveAnEntityManager() {
assertNotNull(entityManager);
}
@Test
public void shouldHaveNoObjectsAtStart() {
List<?> results = entityManager.createQuery("from Foo").getResultList();
assertTrue(results.isEmpty());
}
@Test
public void shouldBeAbleToPersistAnObject() {
assertEquals(0, entityManager.createQuery("from Foo").getResultList().size());
Foo jobUser = new Foo("Bar");
entityManager.persist(jobUser);
entityManager.flush();
assertEquals(1, entityManager.createQuery("from Foo").getResultList().size());
}
@Test
public void shouldBeABleToQueryForObjects() {
shouldBeAbleToPersistAnObject();
assertEquals(1, entityManager.createQuery("from Foo where name = 'Bar'").getResultList().size());
assertEquals(0, entityManager.createQuery("from Foo where name = 'Baz'").getResultList().size());
}
}