package fr.openwide.core.test.jpa.more.business;
import java.util.List;
import org.junit.Assert;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import fr.openwide.core.jpa.exception.SecurityServiceException;
import fr.openwide.core.jpa.exception.ServiceException;
import fr.openwide.core.jpa.more.business.generic.dao.GenericListItemDaoImpl;
import fr.openwide.core.jpa.more.business.generic.model.GenericListItem;
import fr.openwide.core.test.jpa.more.business.audit.model.MockAuditAction;
import fr.openwide.core.test.jpa.more.business.audit.model.MockAuditActionEnum;
import fr.openwide.core.test.jpa.more.business.audit.model.MockAuditFeature;
import fr.openwide.core.test.jpa.more.business.audit.model.MockAuditFeatureEnum;
import fr.openwide.core.test.jpa.more.business.audit.model.QMockAuditAction;
public class TestGenericListItemDao extends AbstractJpaMoreTestCase {
@Autowired
private GenericListItemDaoImpl genericListItemDao;
@Override
protected void cleanAll() throws ServiceException, SecurityServiceException {
cleanFeaturesAndActions();
super.cleanAll();
}
private void cleanFeaturesAndActions() throws ServiceException, SecurityServiceException {
for (GenericListItem<?> genericListItem : genericListItemService.list(MockAuditFeature.class)) {
genericListItemService.delete(genericListItem);
}
for (GenericListItem<?> genericListItem : genericListItemService.list(MockAuditAction.class)) {
genericListItemService.delete(genericListItem);
}
}
@Override
public void init() throws ServiceException, SecurityServiceException {
super.init();
initFeaturesAndActions();
}
private void initFeaturesAndActions() {
for (MockAuditFeatureEnum auditFeatureEnum : MockAuditFeatureEnum.values()) {
MockAuditFeature auditFeature = new MockAuditFeature(auditFeatureEnum.name(), auditFeatureEnum, 1);
genericListItemService.create(auditFeature);
}
for (MockAuditActionEnum auditActionEnum : MockAuditActionEnum.values()) {
MockAuditAction auditAction = new MockAuditAction(auditActionEnum.name(), auditActionEnum, 1);
genericListItemService.create(auditAction);
}
}
@Test
public void testGet() throws ServiceException, SecurityServiceException {
cleanAll();
MockAuditAction mockAuditAction = new MockAuditAction("mockAuditAction", MockAuditActionEnum.TEST_ACTION_1, 2);
genericListItemService.create(mockAuditAction);
{
MockAuditAction mockAuditAction1 = genericListItemDao.getById(MockAuditAction.class, mockAuditAction.getId());
Assert.assertEquals(mockAuditAction, mockAuditAction1);
}
{
MockAuditAction mockAuditAction1 = genericListItemDao.getById(MockAuditAction.class, mockAuditAction.getId());
MockAuditAction mockAuditAction2 = genericListItemDao.getByField(
QMockAuditAction.mockAuditAction, QMockAuditAction.mockAuditAction.position, 2);
MockAuditAction mockAuditAction3 = genericListItemDao.getByField(
QMockAuditAction.mockAuditAction, QMockAuditAction.mockAuditAction.auditActionEnum, MockAuditActionEnum.TEST_ACTION_1);
MockAuditAction mockAuditAction4 = genericListItemDao.getByFieldIgnoreCase(QMockAuditAction.mockAuditAction, QMockAuditAction.mockAuditAction.label, "Mockauditaction");
MockAuditAction mockAuditAction5 = genericListItemDao.getByField(
QMockAuditAction.mockAuditAction, QMockAuditAction.mockAuditAction.label, "Mockauditaction");
Assert.assertEquals(mockAuditAction, mockAuditAction1);
Assert.assertEquals(mockAuditAction, mockAuditAction2);
Assert.assertEquals(mockAuditAction, mockAuditAction3);
Assert.assertEquals(mockAuditAction, mockAuditAction4);
Assert.assertEquals(null, mockAuditAction5);
}
}
@SuppressWarnings("deprecation")
@Test
public void testCount() throws ServiceException, SecurityServiceException {
Assert.assertEquals(new Long(3), genericListItemDao.count(MockAuditAction.class));
Assert.assertEquals(new Long(3), genericListItemDao.count(QMockAuditAction.mockAuditAction));
Assert.assertEquals(new Long(1), genericListItemDao.countByField(
QMockAuditAction.mockAuditAction, QMockAuditAction.mockAuditAction.auditActionEnum, MockAuditActionEnum.TEST_ACTION_1));
Assert.assertEquals(new Long(1), genericListItemDao.countByField(
QMockAuditAction.mockAuditAction, QMockAuditAction.mockAuditAction.auditActionEnum, MockAuditActionEnum.TEST_ACTION_2));
Assert.assertEquals(new Long(1), genericListItemDao.countByField(
QMockAuditAction.mockAuditAction, QMockAuditAction.mockAuditAction.auditActionEnum, MockAuditActionEnum.TEST_ACTION_3));
Assert.assertEquals(new Long(3), genericListItemDao.countByField(
QMockAuditAction.mockAuditAction, QMockAuditAction.mockAuditAction.position, 1));
Assert.assertEquals(new Long(0), genericListItemDao.countByField(
QMockAuditAction.mockAuditAction, QMockAuditAction.mockAuditAction.position, 2));
}
@Test
public void testList() throws ServiceException, SecurityServiceException {
cleanAll();
{
List<MockAuditAction> emptyList = genericListItemDao.list(MockAuditAction.class);
Assert.assertEquals(0, emptyList.size());
}
{
List<MockAuditAction> emptyList = genericListItemDao.list(QMockAuditAction.mockAuditAction);
Assert.assertEquals(0, emptyList.size());
}
{
List<MockAuditAction> emptyListByField = genericListItemDao.listByField(
QMockAuditAction.mockAuditAction, QMockAuditAction.mockAuditAction.position, 1, QMockAuditAction.mockAuditAction.id.desc());
Assert.assertEquals(0, emptyListByField.size());
}
MockAuditAction mockAuditAction1 = new MockAuditAction("mockAuditAction1", MockAuditActionEnum.TEST_ACTION_1, 1);
genericListItemService.create(mockAuditAction1);
MockAuditAction mockAuditAction2 = new MockAuditAction("mockAuditAction2", MockAuditActionEnum.TEST_ACTION_1, 2);
genericListItemService.create(mockAuditAction2);
MockAuditAction mockAuditAction3 = new MockAuditAction("mockAuditAction3", MockAuditActionEnum.TEST_ACTION_2, 1);
genericListItemService.create(mockAuditAction3);
MockAuditAction mockAuditAction4 = new MockAuditAction("mockAuditAction4", MockAuditActionEnum.TEST_ACTION_2, 2);
genericListItemService.create(mockAuditAction4);
MockAuditAction mockAuditAction5 = new MockAuditAction("mockAuditAction5", MockAuditActionEnum.TEST_ACTION_2, 1);
genericListItemService.create(mockAuditAction5);
{
List<MockAuditAction> list1 = genericListItemDao.list(MockAuditAction.class);
Assert.assertEquals(5, list1.size());
Assert.assertTrue(list1.contains(mockAuditAction1));
Assert.assertTrue(list1.contains(mockAuditAction2));
Assert.assertTrue(list1.contains(mockAuditAction3));
Assert.assertTrue(list1.contains(mockAuditAction4));
Assert.assertTrue(list1.contains(mockAuditAction5));
}
{
List<MockAuditAction> list1 = genericListItemDao.list(QMockAuditAction.mockAuditAction);
Assert.assertEquals(5, list1.size());
Assert.assertTrue(list1.contains(mockAuditAction1));
Assert.assertTrue(list1.contains(mockAuditAction2));
Assert.assertTrue(list1.contains(mockAuditAction3));
Assert.assertTrue(list1.contains(mockAuditAction4));
Assert.assertTrue(list1.contains(mockAuditAction5));
}
{
List<MockAuditAction> list2 = genericListItemDao.listByField(
QMockAuditAction.mockAuditAction, QMockAuditAction.mockAuditAction.auditActionEnum, MockAuditActionEnum.TEST_ACTION_1, QMockAuditAction.mockAuditAction.position.asc());
Assert.assertEquals(2, list2.size());
Assert.assertEquals(list2.get(0), mockAuditAction1);
Assert.assertEquals(list2.get(1), mockAuditAction2);
}
{
List<MockAuditAction> list3 = genericListItemDao.listByField(
QMockAuditAction.mockAuditAction, QMockAuditAction.mockAuditAction.position, 1, QMockAuditAction.mockAuditAction.id.desc());
Assert.assertEquals(3, list3.size());
Assert.assertTrue(list3.contains(mockAuditAction1));
Assert.assertTrue(list3.contains(mockAuditAction3));
Assert.assertTrue(list3.contains(mockAuditAction5));
}
{
List<MockAuditAction> list4 = genericListItemDao.listByField(
QMockAuditAction.mockAuditAction, QMockAuditAction.mockAuditAction.auditActionEnum, MockAuditActionEnum.TEST_ACTION_3, QMockAuditAction.mockAuditAction.id.desc());
Assert.assertEquals(0, list4.size());
}
}
}