package de.fhb.autobday.dao;
import de.fhb.autobday.data.AbdGroup;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.TypedQuery;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;
import static org.easymock.EasyMock.*;
import static org.junit.Assert.assertEquals;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Ignore;
import org.junit.Test;
/**
* Test of AbdGroupDAO
*
* @author Christoph Ott
*/
public class AbdGroupDAOTest {
private static AbdGroupFacade groupDAOunderTest;
private EntityManager emMock;
private AbdGroup groupEntity;
@BeforeClass
public static void setUpBeforeClass() throws Exception {
groupDAOunderTest = new AbdGroupFacade();
}
@Before
public void setUp() throws Exception {
emMock = createMock(EntityManager.class);
groupDAOunderTest.setEntityManager(emMock);
groupEntity = new AbdGroup("friends_id", "friends", "abc", true);
}
@Test
public void testContains() {
expect(emMock.contains(groupEntity)).andReturn(true);
replay(emMock);
assertEquals(true, groupDAOunderTest.contains(groupEntity));
verify(emMock);
}
@Test
public void testRefresh() {
emMock.refresh(groupEntity);
replay(emMock);
groupDAOunderTest.refresh(groupEntity);
verify(emMock);
}
@Test
public void testCreate() {
emMock.persist(groupEntity);
replay(emMock);
groupDAOunderTest.create(groupEntity);
verify(emMock);
}
@Test
public void testEdit() {
expect(emMock.merge(groupEntity)).andReturn(groupEntity);
replay(emMock);
groupDAOunderTest.edit(groupEntity);
verify(emMock);
}
@Test
public void testRemove() {
expect(emMock.merge(groupEntity)).andStubReturn(groupEntity);
emMock.remove(groupEntity);
replay(emMock);
groupDAOunderTest.remove(groupEntity);
verify(emMock);
}
@Test
public void testFind() {
expect(emMock.find(AbdGroup.class, groupEntity.getId())).andReturn(groupEntity);
replay(emMock);
assertEquals(groupEntity, groupDAOunderTest.find(groupEntity.getId()));
verify(emMock);
}
@Test
@Ignore
public void testFindAll() {
CriteriaQuery criteriaQueryMock = createMock(CriteriaQuery.class);
CriteriaBuilder criteriaBuilderMock = createMock(CriteriaBuilder.class);
Root rootMock = createMock(Root.class);
TypedQuery typedQueryMock = createMock(TypedQuery.class);
List<AbdGroup> resultList = new ArrayList<AbdGroup>();
resultList.add(groupEntity);
resultList.add(new AbdGroup("family"));
expect(emMock.getCriteriaBuilder()).andReturn(criteriaBuilderMock);
expect(criteriaBuilderMock.createQuery()).andReturn(criteriaQueryMock);
expect(criteriaQueryMock.from(AbdGroup.class)).andReturn(rootMock);
expect(criteriaQueryMock.select(rootMock)).andReturn(criteriaQueryMock);
expect(emMock.createQuery(criteriaQueryMock)).andReturn(typedQueryMock);
expect(typedQueryMock.getResultList()).andReturn(resultList);
assertEquals(resultList, groupDAOunderTest.findAll());
replay(emMock);
replay(criteriaBuilderMock);
replay(criteriaQueryMock);
replay(rootMock);
replay(typedQueryMock);
groupDAOunderTest.findAll();
verify(criteriaBuilderMock);
verify(criteriaQueryMock);
verify(rootMock);
verify(typedQueryMock);
verify(emMock);
}
@Test
@Ignore
public void testFindRange() {
}
@Test
@Ignore
public void testCount() {
}
}