package pl.zgora.uz.wmie.fe.test;
import java.util.ArrayList;
import java.util.List;
import org.hibernate.criterion.Criterion;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.ProjectionList;
import org.hibernate.criterion.Projections;
import org.hibernate.criterion.Restrictions;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import pl.zgora.uz.wmie.fe.hbm.classes.Dzial;
import pl.zgora.uz.wmie.fe.hbm.classes.Pracownik;
import pl.zgora.uz.wmie.fe.hbm.classes.Stanowisko;
import pl.zgora.uz.wmie.fe.service.DzialService;
import pl.zgora.uz.wmie.fe.util.BusinessUtil;
public class DzialServiceTest {
private DzialService dzialService;
private static Integer generatedId;
@Before
public void setUp() throws Exception {
dzialService = (DzialService) BusinessUtil.findBusiness("DzialService");
}
@Test
public void saveTest() throws Exception {
Dzial dzial = new Dzial();
dzial.setNazwaDzialu("nowy dzial");
//dzial.setTyp("E");
generatedId = dzialService.save(dzial);
}
@Test
public void loadTest() throws Exception {
dzialService.load(generatedId);
}
@Test
public void deleteTest() throws Exception {
dzialService.deleteById(generatedId);
}
@Test
public void findByParamsProjections() throws Exception{
ProjectionList list = Projections.projectionList();
list.add(Projections.property(Dzial.PROPERTY_ID));
list.add(Projections.property(Dzial.PROPERTY_OBJECT_PRACOWNIKS+"."+Pracownik.PROPERTY_IMIE));
list.add(Projections.property(Dzial.PROPERTY_OBJECT_PRACOWNIKS+"."+Pracownik.PROPERTY_OBJECT_STANOWSKO+"."+Stanowisko.PROPERTY_NAZWA));
dzialService.findByParams(list);
}
@Test
public void findByParamsCriteria() throws Exception{
List<Criterion> list = new ArrayList<Criterion>();
list.add(Restrictions.isNotNull(Dzial.PROPERTY_NAZWA_DZIALU));
list.add(Restrictions.isNotNull(Dzial.PROPERTY_OBJECT_PRACOWNIKS+"."+Pracownik.PROPERTY_ID));
List<Dzial> dList = dzialService.findByParams(list);
}
@Test
public void findByParamsProjectionsCriteria() throws Exception{
ProjectionList listProjections = Projections.projectionList();
listProjections.add(Projections.property(Dzial.PROPERTY_ID));
listProjections.add(Projections.property(Dzial.PROPERTY_OBJECT_PRACOWNIKS+"."+Pracownik.PROPERTY_IMIE));
listProjections.add(Projections.property(Dzial.PROPERTY_OBJECT_PRACOWNIKS+"."+Pracownik.PROPERTY_OBJECT_STANOWSKO+"."+Stanowisko.PROPERTY_NAZWA));
List<Criterion> listCriterions = new ArrayList<Criterion>();
listCriterions.add(Restrictions.isNotNull(Dzial.PROPERTY_NAZWA_DZIALU));
listCriterions.add(Restrictions.isNotNull(Dzial.PROPERTY_OBJECT_PRACOWNIKS+"."+Pracownik.PROPERTY_ID));
dzialService.findByParams(listProjections, listCriterions);
}
@Test
public void findByParamsProjectionsCriteriaOrder() throws Exception{
ProjectionList listProjections = Projections.projectionList();
listProjections.add(Projections.property(Dzial.PROPERTY_ID));
listProjections.add(Projections.property(Dzial.PROPERTY_OBJECT_PRACOWNIKS+"."+Pracownik.PROPERTY_IMIE));
listProjections.add(Projections.property(Dzial.PROPERTY_OBJECT_PRACOWNIKS+"."+Pracownik.PROPERTY_OBJECT_STANOWSKO+"."+Stanowisko.PROPERTY_NAZWA));
List<Criterion> listCriterions = new ArrayList<Criterion>();
listCriterions.add(Restrictions.isNotNull(Dzial.PROPERTY_NAZWA_DZIALU));
listCriterions.add(Restrictions.isNotNull(Dzial.PROPERTY_OBJECT_PRACOWNIKS+"."+Pracownik.PROPERTY_ID));
listCriterions.add(Restrictions.isNotNull(Dzial.PROPERTY_OBJECT_PRACOWNIKS+"."+Pracownik.PROPERTY_OBJECT_STANOWSKO+"."+Stanowisko.PROPERTY_ID));
List<Order> listOrders = new ArrayList<Order>();
listOrders.add(Order.desc(Dzial.PROPERTY_ID));
listOrders.add(Order.desc(Dzial.PROPERTY_OBJECT_PRACOWNIKS+"."+Pracownik.PROPERTY_ID));
dzialService.findByParams(listProjections, listCriterions, listOrders);
}
@Test
public void findByParamsProjectionsCriteriaOrderStartIndexRowAmount() throws Exception{
ProjectionList listProjections = Projections.projectionList();
listProjections.add(Projections.property(Dzial.PROPERTY_ID));
List<Criterion> listCriterions = new ArrayList<Criterion>();
listCriterions.add(Restrictions.isNotNull(Dzial.PROPERTY_NAZWA_DZIALU));
listCriterions.add(Restrictions.isNotNull(Dzial.PROPERTY_OBJECT_PRACOWNIKS+"."+Pracownik.PROPERTY_ID));
listCriterions.add(Restrictions.isNotNull(Dzial.PROPERTY_OBJECT_PRACOWNIKS+"."+Pracownik.PROPERTY_OBJECT_STANOWSKO+"."+Stanowisko.PROPERTY_ID));
List<Order> listOrders = new ArrayList<Order>();
listOrders.add(Order.desc(Dzial.PROPERTY_ID));
listOrders.add(Order.desc(Dzial.PROPERTY_OBJECT_PRACOWNIKS+"."+Pracownik.PROPERTY_IMIE));
int startIndex = 0;
int rowAmount = 10;
dzialService.findByParams(listProjections, listCriterions, listOrders, startIndex, rowAmount);
}
@Test
public void getRowCountCriteria() throws Exception{
List<Criterion> list = new ArrayList<Criterion>();
list.add(Restrictions.isNotNull(Dzial.PROPERTY_NAZWA_DZIALU));
list.add(Restrictions.isNotNull(Dzial.PROPERTY_OBJECT_PRACOWNIKS+"."+Pracownik.PROPERTY_ID));
dzialService.getRowCount(list);
}
@Test
public void getRowCountProjectionCriteria() throws Exception{
ProjectionList listProjections = Projections.projectionList();
listProjections.add(Projections.distinct(Projections.property(Dzial.PROPERTY_NAZWA_DZIALU)));
List<Criterion> list = new ArrayList<Criterion>();
list.add(Restrictions.isNotNull(Dzial.PROPERTY_NAZWA_DZIALU));
list.add(Restrictions.isNotNull(Dzial.PROPERTY_OBJECT_PRACOWNIKS+"."+Pracownik.PROPERTY_ID));
dzialService.getRowCount(listProjections, list);
}
@After
public void cleanUp() {
dzialService = null;
}
}