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.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.service.PracownikService;
import pl.zgora.uz.wmie.fe.service.StanowiskoService;
import pl.zgora.uz.wmie.fe.util.BusinessUtil;
public class PracownikServiceTest {
public PracownikService pracownikService;
public StanowiskoService stanowiskoService;
public DzialService dzialService;
private static Integer generatedId;
@Before
public void setUp() throws Exception{
pracownikService = (PracownikService) BusinessUtil.findBusiness("PracownikService");
stanowiskoService = (StanowiskoService) BusinessUtil.findBusiness("StanowiskoService");
}
@Test
public void testSave() throws Exception {
Pracownik pracownik=new Pracownik();
pracownik.setNazwisko("Nowy");
pracownik.setImie("NoweImie");
Stanowisko stanowisko = new Stanowisko();
stanowisko=stanowiskoService.load(1);
pracownik.setStanowisko(stanowisko);
pracownik.setAdres("Gdzies na swiecie");
generatedId=pracownikService.save(pracownik);
}
@Test
public void testGetImie() throws Exception {
System.out.println(pracownikService.getImie(generatedId));
}
@Test
public void testGetNazwisko() throws Exception {
System.out.println(pracownikService.getNazwisko(generatedId));
}
@Test
public void testLoad() throws Exception {
pracownikService.load(generatedId);
}
@Test
public void findByParamsProjections() throws Exception{
ProjectionList list = Projections.projectionList();
list.add(Projections.property(Pracownik.PROPERTY_ID));
list.add(Projections.property(Pracownik.PROPERTY_OBJECT_DZIALS+"."+Dzial.PROPERTY_NAZWA_DZIALU));
pracownikService.findByParams(list);
}
@Test
public void findByParamsCriteria() throws Exception{
List<Criterion> list = new ArrayList<Criterion>();
list.add(Restrictions.isNotNull(Pracownik.PROPERTY_NAZWISKO));
list.add(Restrictions.isNotNull(Pracownik.PROPERTY_OBJECT_DZIALS+"."+Dzial.PROPERTY_NAZWA_DZIALU));
List<Pracownik> dList = pracownikService.findByParams(list);
for(Pracownik prac : dList){
System.out.println(prac.getDzials());
}
}
@Test
public void findByParamsProjectionsCriteria() throws Exception{
ProjectionList listProjections = Projections.projectionList();
listProjections.add(Projections.property(Pracownik.PROPERTY_ID));
listProjections.add(Projections.property(Pracownik.PROPERTY_OBJECT_DZIALS+"."+Dzial.PROPERTY_NAZWA_DZIALU));
List<Criterion> listCriterions = new ArrayList<Criterion>();
listCriterions.add(Restrictions.isNotNull(Pracownik.PROPERTY_ID));
listCriterions.add(Restrictions.isNotNull(Pracownik.PROPERTY_OBJECT_DZIALS+"."+Dzial.PROPERTY_ID));
pracownikService.findByParams(listProjections, listCriterions);
}
@Test
public void findByParamsProjectionsCriteriaOrder() throws Exception{
ProjectionList listProjections = Projections.projectionList();
listProjections.add(Projections.property(Pracownik.PROPERTY_ID));
listProjections.add(Projections.property(Pracownik.PROPERTY_OBJECT_DZIALS+"."+Dzial.PROPERTY_NAZWA_DZIALU));
List<Criterion> listCriterions = new ArrayList<Criterion>();
listCriterions.add(Restrictions.isNotNull(Pracownik.PROPERTY_ID));
listCriterions.add(Restrictions.isNotNull(Pracownik.PROPERTY_OBJECT_DZIALS+"."+Dzial.PROPERTY_ID));
List<Order> listOrders = new ArrayList<Order>();
listOrders.add(Order.desc(Pracownik.PROPERTY_ID));
listOrders.add(Order.desc(Pracownik.PROPERTY_OBJECT_DZIALS+"."+Dzial.PROPERTY_NAZWA_DZIALU));
pracownikService.findByParams(listProjections, listCriterions, listOrders);
}
@Test
public void findByParamsProjectionsCriteriaOrderStartIndexRowAmount() throws Exception{
ProjectionList listProjections = Projections.projectionList();
listProjections.add(Projections.property(Pracownik.PROPERTY_ID));
List<Criterion> listCriterions = new ArrayList<Criterion>();
listCriterions.add(Restrictions.isNotNull(Pracownik.PROPERTY_NAZWISKO));
listCriterions.add(Restrictions.isNotNull(Pracownik.PROPERTY_OBJECT_DZIALS+"."+Dzial.PROPERTY_NAZWA_DZIALU));
List<Order> listOrders = new ArrayList<Order>();
listOrders.add(Order.desc(Pracownik.PROPERTY_ID));
listOrders.add(Order.desc(Pracownik.PROPERTY_OBJECT_DZIALS+"."+Dzial.PROPERTY_NAZWA_DZIALU));
int startIndex = 0;
int rowAmount = 10;
pracownikService.findByParams(listProjections, listCriterions, listOrders, startIndex, rowAmount);
}
@Test
public void findAllTest() throws Exception {
List<Pracownik> list = pracownikService.findAll();
for(Pracownik prac : list){
System.out.println(prac.getNazwisko());
}
}
@Test
public void getRowCountCriteria() throws Exception{
List<Criterion> list = new ArrayList<Criterion>();
list.add(Restrictions.isNotNull(Pracownik.PROPERTY_NAZWISKO));
list.add(Restrictions.isNotNull(Pracownik.PROPERTY_OBJECT_DZIALS+"."+Dzial.PROPERTY_NAZWA_DZIALU));
pracownikService.getRowCount(list);
}
@Test
public void getRowCountProjectionCriteria() throws Exception{
ProjectionList listProjections = Projections.projectionList();
listProjections.add(Projections.distinct(Projections.property(Pracownik.PROPERTY_NAZWISKO)));
List<Criterion> list = new ArrayList<Criterion>();
list.add(Restrictions.isNotNull(Pracownik.PROPERTY_NAZWISKO));
list.add(Restrictions.isNotNull(Pracownik.PROPERTY_OBJECT_DZIALS+"."+Dzial.PROPERTY_NAZWA_DZIALU));
pracownikService.getRowCount(listProjections, list);
}
@Test
public void getRowCount() throws Exception {
ProjectionList listProjections = Projections.projectionList();
listProjections.add(Projections.property(Pracownik.PROPERTY_NAZWISKO));
List<Criterion> list = new ArrayList<Criterion>();
list.add(Restrictions.isNotNull(Pracownik.PROPERTY_NAZWISKO));
System.out.println(pracownikService.getRowCount(listProjections, list));
}
@Test
public void testDeleteById() throws Exception {
pracownikService.deleteById(generatedId);
}
}