package br.com.caelum.vraptor.jpa;
import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import org.junit.Before;
import org.junit.Test;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
public class EntityManagerCreatorTest {
private @Mock EntityManagerFactory factory;
private @Mock EntityManager entityManager;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
}
@Test
public void shouldReturnCreatedInstance() {
when(factory.createEntityManager()).thenReturn(entityManager);
EntityManagerCreator creator = new EntityManagerCreator(factory);
assertEquals(entityManager, creator.getEntityManager());
}
@Test
public void shouldCloseSessionOnDestroy() {
when(factory.createEntityManager()).thenReturn(entityManager);
when(entityManager.isOpen()).thenReturn(true);
EntityManagerCreator creator = new EntityManagerCreator(factory);
creator.destroy(creator.getEntityManager());
verify(entityManager).close();
}
}