Package org.hibernate.test.annotations.filters

Source Code of org.hibernate.test.annotations.filters.InheritedFilterTest

package org.hibernate.test.annotations.filters;

import java.util.List;

import junit.framework.Assert;

import org.hibernate.Filter;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.dialect.Oracle8iDialect;
import org.hibernate.dialect.SybaseASE15Dialect;
import org.hibernate.junit.SkipForDialect;
import org.hibernate.test.annotations.TestCase;

/**
* Unit Test for JBPAPP-6311 - Filters defined in superclass are not inherited in subclasses
* @author Alessandro Lazarotti <alessandrolt2@gmail.com>
*/
// Skip Oracle.  The filter query in Animal is invalid for Oracle only.
@SkipForDialect(jiraKey="JBPAPP-9896",value={Oracle8iDialect.class})
public class InheritedFilterTest extends TestCase {
 
  Cat tom;
  Animal garfield;
  Session session;
 

  @Override
  protected void setUp() throws Exception {
    super.setUp();
    session = openSession();
   
    final Transaction tx = session.beginTransaction();
    tom = new Cat("Tom", 10, true);
    garfield = new Cat("Garfield", 15, true);   
    session.save(tom);
    session.save(garfield);
    tx.commit();
   
    session.close();
  }

 
  @SuppressWarnings("unchecked")
  public void testChildWithFilter() {
    session = openSession();
    session.beginTransaction();
    Filter filter = session.enableFilter("age_gt_10");
    filter.setParameter("age", 10);
    System.out.println("testChildWithFilter");
    List<Animal> result = session.createCriteria(Cat.class).list();
    Assert.assertEquals(1, result.size());
    session.getTransaction().commit();
    session.close();
  }

  @SuppressWarnings("unchecked")
  public void testChildWithoutFilter() {
    session = openSession();
    session.beginTransaction();
    List<Animal> result = session.createCriteria(Cat.class).list();
    System.out.println("testChildWithoutFilter");
    Assert.assertEquals(2, result.size());
    session.getTransaction().commit();
    session.close();
  }

  @SuppressWarnings("unchecked")
  public void testParentWithFilter() {
    session = openSession();
    session.beginTransaction();
    Filter filter = session.enableFilter("age_gt_10");
    filter.setParameter("age", 10);
    System.out.println("testParentWithFilter");
    List<Animal> result = session.createCriteria(Animal.class).list();
    Assert.assertEquals(1, result.size());
    session.getTransaction().commit();
    session.close();
  }

  @SuppressWarnings("unchecked")
  public void testParentWithoutFilter() {
    session = openSession();
    session.beginTransaction();
    System.out.println("testParentWithoutFilter");
    List<Animal> result = session.createCriteria(Animal.class).list();
    Assert.assertEquals(2, result.size());
    session.getTransaction().commit();
    session.close();
 

  @Override
  protected Class<?>[] getAnnotatedClasses() {
    return new Class[]{
        Animal.class,
        Cat.class
    };
  }

}
TOP

Related Classes of org.hibernate.test.annotations.filters.InheritedFilterTest

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.