Package org.crank.crud.controller

Source Code of org.crank.crud.controller.FilteringPaginatorIntegrationTest

package org.crank.crud.controller;

import java.util.List;
import java.util.Map;

import org.crank.crud.GenericDao;
import org.crank.crud.controller.datasource.DaoFilteringPagingDataSource;
import org.crank.crud.criteria.Comparison;
import org.crank.crud.test.DbUnitTestBase;
import org.crank.crud.test.model.PetClinicInquiry;
import org.crank.crud.test.model.PetClinicLead;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;

/**
*
* @version $Revision: 1671 $
* @author Rick Hightower
*/
public class FilteringPaginatorIntegrationTest extends DbUnitTestBase {


  private GenericDao<PetClinicInquiry, Long> petClinicInquiryDao;

  private GenericDao<PetClinicLead, Long> petClinicLeadDao;

  private FilteringPaginator paginator;
 

  @Override
  public String getDataSetXml() {
    return "data/Employee.xml";
  }
 
  @BeforeClass (dependsOnGroups={"initPersist"})
  public void setup() {
   
    petClinicInquiryDao.getClass();
    DaoFilteringPagingDataSource<PetClinicLead, Long> dataSource = new DaoFilteringPagingDataSource<PetClinicLead, Long>();
    dataSource.setDao(petClinicLeadDao);
   
    paginator = new FilteringPaginator(dataSource, PetClinicLead.class);
   
   
        paginator.addFilterableEntityJoin(PetClinicInquiry.class, //Class we are joining
            "PetClinicInquiry", //Entity name
            "inquiry", //
            new String []{"anotherProp"}, //Array of property names we want to join to.
            "o.inquiry"); //How to join to the PetClinicLead
       
        paginator.filter();
       
        for (int index = 0; index < 10; index ++) {
          PetClinicLead lead = new PetClinicLead();
          lead.setName("testLead" + index);
          PetClinicInquiry inquiry = new PetClinicInquiry();
          inquiry.setName("testInquiry" + index);
          inquiry.setAnotherProp("testInquiryAP" + index);
          lead.setInquiry(inquiry);
          petClinicInquiryDao.store(inquiry);
          petClinicLeadDao.store(lead);
        }
       
       
  }

  @AfterClass
  public void teardown() {
    try {
      List<PetClinicInquiry> inqueries = petClinicInquiryDao.find(Comparison.startsLike("name", "testInquiry"));
      List<PetClinicLead> leads = petClinicLeadDao.find(Comparison.startsLike("name", "testLead"));
     
      petClinicLeadDao.delete(leads);
      petClinicInquiryDao.delete(inqueries);
    } catch(Exception ex) {
     
    }
  }
   
  @SuppressWarnings("unchecked")
  @Test (groups="reads")
    public void testGettingFirstPage() {
    System.out.println("----------------------------------------------------");
    Map<String, FilterableProperty> filterableProperties = paginator.getFilterableProperties();
    FilterableProperty filterableProperty = filterableProperties.get("name");
    filterableProperty.getComparison().setValue("testLead");
    filterableProperty.getComparison().enable();
    List<Object []> page = (List<Object []>) paginator.getPage();
    for (Object [] row : page) {
      PetClinicLead lead = (PetClinicLead) row[0];
      PetClinicInquiry inquiry = (PetClinicInquiry) row[1];
      assert lead.getName().startsWith("testLead");
      assert inquiry.getName().startsWith("testInquiry");
    }
    System.out.println("----------------------------------------------------");
    assert page != null : "page was not null";
    assert page.size() > 0 : "page size was greater than 0";
    }


  public void setPetClinicInquiryDao(
      GenericDao<PetClinicInquiry, Long> petClinicInquiryDao) {
    this.petClinicInquiryDao = petClinicInquiryDao;
  }


  public void setPetClinicLeadDao(GenericDao<PetClinicLead, Long> petClinicLeadDao) {
    this.petClinicLeadDao = petClinicLeadDao;
  }
 
}
TOP

Related Classes of org.crank.crud.controller.FilteringPaginatorIntegrationTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.