package io.robe.hibernate.dao;
import io.robe.common.service.search.model.SearchModel;
import io.robe.hibernate.entity.RobeEntity;
import io.robe.hibernate.entity.TestEntity;
import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.junit.Before;
import org.junit.Test;
import javax.servlet.http.HttpServletResponse;
import static org.mockito.Matchers.anyObject;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
public class BaseDaoTest {
private SearchModel getModel() {
SearchModel expected = new SearchModel();
expected.setQ("abc");
expected.setOffset(1);
expected.setLimit(10);
expected.setFields(new String[]{"name", "time", "count"});
expected.setSort(new String[]{"+day", "-time"});
expected.setFilterExpression("status=ACTIVE");
expected.setResponse(mock(HttpServletResponse.class));
return expected;
}
private final SessionFactory factory = mock(SessionFactory.class);
private final Criteria criteria = mock(Criteria.class);
private final Query query = mock(Query.class);
private final Session session = mock(Session.class);
// private final Projection projection = mock(Projection.class);
@Before
public void setup() throws Exception {
when(factory.getCurrentSession()).thenReturn(session);
when(session.createCriteria(RobeEntity.class)).thenReturn(criteria);
when(criteria.setProjection(anyObject())).thenReturn(criteria);
when(criteria.uniqueResult()).thenReturn(1l);
}
@Test
public void findAll() throws Exception {
BaseDao<TestEntity> baseDao = new BaseDao<>(factory);
// baseDao.findAllStrict(getModel());
}
@Test
public void findAllWithSearchFrom() throws Exception {
}
}