package pl.zgora.uz.wmie.fe.test;
import java.util.ArrayList;
import java.util.List;
import javax.sql.DataSource;
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.hibernate.search.annotations.DateBridge;
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.StanowiskoService;
import pl.zgora.uz.wmie.fe.util.BusinessUtil;
public class StanowiskoServiceTest {
private StanowiskoService stanowiskoService;
private static Integer generatedId;
@Before
public void setUp() throws Exception{
stanowiskoService = (StanowiskoService) BusinessUtil.findBusiness("StanowiskoService");
}
@Test
public void saveTest() throws Exception {
System.out.println(stanowiskoService.findAll().size());
Stanowisko stanowisko = new Stanowisko();
stanowisko.setNazwa("Nowe stanowisko");
generatedId = stanowiskoService.save(stanowisko);
System.out.println(stanowiskoService.findAll().size());
}
@Test
public void loadTest() throws Exception {
stanowiskoService.load(generatedId);
}
@Test
public void getStanowiskaWithPracownicyTest() throws Exception {
// List<Stanowisko> list = null;
// list = stanowiskoService.getStanowiskaWithPracownicy();
// for(Stanowisko stanowisko : list){
// System.out.println(stanowisko.getPracowniks());
// }
}
@Test
public void getStanowiskoName() throws Exception {
System.out.println(stanowiskoService.getStanowiskoName(2));
}
@Test
public void findByParamsProjections() throws Exception{
ProjectionList list = Projections.projectionList();
list.add(Projections.property(Stanowisko.PROPERTY_ID));
list.add(Projections.property(Stanowisko.PROPERTY_OBJECT_PPRACOWNIKS+"."+Pracownik.PROPERTY_NAZWISKO));
list.add(Projections.property(Stanowisko.PROPERTY_OBJECT_PPRACOWNIKS+"."+Pracownik.PROPERTY_OBJECT_DZIALS+"."+Dzial.PROPERTY_NAZWA_DZIALU));
stanowiskoService.findByParams(list);
}
@Test
public void findByParamsCriteria() throws Exception{
List<Criterion> list = new ArrayList<Criterion>();
list.add(Restrictions.isNotNull(Stanowisko.PROPERTY_NAZWA));
list.add(Restrictions.isNotNull(Stanowisko.PROPERTY_OBJECT_PPRACOWNIKS+"."+Pracownik.PROPERTY_NAZWISKO));
List<Stanowisko> dList = stanowiskoService.findByParams(list);
for(Stanowisko stanow : dList){
System.out.println(stanow.getPracowniks());
}
}
@Test
public void findByParamsProjectionsCriteria() throws Exception{
ProjectionList listProjections = Projections.projectionList();
listProjections.add(Projections.property(Stanowisko.PROPERTY_ID));
listProjections.add(Projections.property(Stanowisko.PROPERTY_OBJECT_PPRACOWNIKS+"."+Pracownik.PROPERTY_NAZWISKO));
listProjections.add(Projections.property(Stanowisko.PROPERTY_OBJECT_PPRACOWNIKS+"."+Pracownik.PROPERTY_OBJECT_DZIALS+"."+Dzial.PROPERTY_ID));
List<Criterion> listCriterions = new ArrayList<Criterion>();
listCriterions.add(Restrictions.isNotNull(Stanowisko.PROPERTY_ID));
listCriterions.add(Restrictions.isNotNull(Stanowisko.PROPERTY_OBJECT_PPRACOWNIKS+"."+Pracownik.PROPERTY_ID));
stanowiskoService.findByParams(listProjections, listCriterions);
}
@Test
public void findByParamsProjectionsCriteriaOrder() throws Exception{
ProjectionList listProjections = Projections.projectionList();
listProjections.add(Projections.property(Stanowisko.PROPERTY_ID));
listProjections.add(Projections.property(Stanowisko.PROPERTY_OBJECT_PPRACOWNIKS+"."+Pracownik.PROPERTY_IMIE));
listProjections.add(Projections.property(Stanowisko.PROPERTY_OBJECT_PPRACOWNIKS+"."+Pracownik.PROPERTY_OBJECT_DZIALS+"."+Dzial.PROPERTY_NAZWA_DZIALU));
List<Criterion> listCriterions = new ArrayList<Criterion>();
listCriterions.add(Restrictions.isNotNull(Stanowisko.PROPERTY_ID));
listCriterions.add(Restrictions.isNotNull(Stanowisko.PROPERTY_OBJECT_PPRACOWNIKS+"."+Pracownik.PROPERTY_ID));
listCriterions.add(Restrictions.isNotNull(Stanowisko.PROPERTY_OBJECT_PPRACOWNIKS+"."+Pracownik.PROPERTY_OBJECT_DZIALS+"."+Dzial.PROPERTY_ID));
List<Order> listOrders = new ArrayList<Order>();
listOrders.add(Order.desc(Stanowisko.PROPERTY_ID));
listOrders.add(Order.desc(Stanowisko.PROPERTY_OBJECT_PPRACOWNIKS+"."+Pracownik.PROPERTY_ID));
stanowiskoService.findByParams(listProjections, listCriterions, listOrders);
}
@Test
public void findByParamsProjectionsCriteriaOrderStartIndexRowAmount() throws Exception{
ProjectionList listProjections = Projections.projectionList();
listProjections.add(Projections.property(Stanowisko.PROPERTY_ID));
List<Criterion> listCriterions = new ArrayList<Criterion>();
listCriterions.add(Restrictions.isNotNull(Stanowisko.PROPERTY_NAZWA));
listCriterions.add(Restrictions.isNotNull(Stanowisko.PROPERTY_OBJECT_PPRACOWNIKS+"."+Pracownik.PROPERTY_ID));
listCriterions.add(Restrictions.isNotNull(Stanowisko.PROPERTY_OBJECT_PPRACOWNIKS+"."+Pracownik.PROPERTY_OBJECT_DZIALS+"."+Dzial.PROPERTY_ID));
List<Order> listOrders = new ArrayList<Order>();
listOrders.add(Order.desc(Stanowisko.PROPERTY_ID));
listOrders.add(Order.desc(Stanowisko.PROPERTY_OBJECT_PPRACOWNIKS+"."+Pracownik.PROPERTY_IMIE));
int startIndex = 0;
int rowAmount = 10;
stanowiskoService.findByParams(listProjections, listCriterions, listOrders, startIndex, rowAmount);
}
@Test
public void findAllTest() throws Exception {
List<Stanowisko> list = stanowiskoService.findAll();
for(Stanowisko stanow : list){
System.out.println(stanow.getNazwa());
}
}
@Test
public void getRowCountCriteria() throws Exception{
List<Criterion> list = new ArrayList<Criterion>();
list.add(Restrictions.isNotNull(Stanowisko.PROPERTY_NAZWA));
list.add(Restrictions.isNotNull(Stanowisko.PROPERTY_OBJECT_PPRACOWNIKS+"."+Pracownik.PROPERTY_NAZWISKO));
stanowiskoService.getRowCount(list);
}
@Test
public void getRowCountProjectionCriteria() throws Exception{
ProjectionList listProjections = Projections.projectionList();
listProjections.add(Projections.distinct(Projections.property(Stanowisko.PROPERTY_NAZWA)));
List<Criterion> list = new ArrayList<Criterion>();
list.add(Restrictions.isNotNull(Stanowisko.PROPERTY_NAZWA));
list.add(Restrictions.isNotNull(Stanowisko.PROPERTY_OBJECT_PPRACOWNIKS+"."+Pracownik.PROPERTY_ID));
stanowiskoService.getRowCount(listProjections, list);
}
@Test
public void getRowCount() throws Exception {
ProjectionList listProjections = Projections.projectionList();
listProjections.add(Projections.property(Stanowisko.PROPERTY_NAZWA));
List<Criterion> list = new ArrayList<Criterion>();
list.add(Restrictions.isNotNull(Stanowisko.PROPERTY_NAZWA));
System.out.println(stanowiskoService.getRowCount(listProjections, list));
}
@Test
public void deleteTest() throws Exception {
//Stanowisko s =new Stanowisko(2);
//stanowiskoService.deleteById(generatedId);
stanowiskoService.delete(new Stanowisko(generatedId));
}
@After
public void cleanUp(){
stanowiskoService = null;
}
}