Package org.hibernate.validator.test.jpa

Source Code of org.hibernate.validator.test.jpa.JPAValidateListenerTest

//$Id: JPAValidateListenerTest.java 15133 2008-08-20 10:05:57Z hardy.ferentschik $
package org.hibernate.validator.test.jpa;

import java.util.Map;

import javax.persistence.EntityManager;

import org.hibernate.ejb.HibernatePersistence;
import org.hibernate.validator.Environment;
import org.hibernate.validator.InvalidStateException;

/**
* @author Emmanuel Bernard
*/
public class JPAValidateListenerTest extends JPATestCase {

  public void testEventTrigger() {
    EntityManager em = factory.createEntityManager();
    em.getTransaction().begin();
    Commander beetles = new Commander();
    beetles.setName( "" );
    Submarine yellowSubmarine = new Submarine();
    yellowSubmarine.setCommander( beetles );
    yellowSubmarine.setName( "" );
    yellowSubmarine.setSize( 3 );
    try {
      em.persist( yellowSubmarine );
      em.flush();
      fail("Event not wired");
    }
    catch(InvalidStateException e) {
      assertEquals( 3, e.getInvalidValues().length );
    }
    finally {
      em.getTransaction().rollback();
      em.close();
    }

    //update trigger
    em = factory.createEntityManager();
    em.getTransaction().begin();
    beetles = new Commander();
    beetles.setName( "Beetles" );
    yellowSubmarine = new Submarine();
    yellowSubmarine.setCommander( beetles );
    yellowSubmarine.setName( "Yellow" );
    yellowSubmarine.setSize( 13 );
    em.persist( yellowSubmarine );
    em.flush();
    em.clear();
    yellowSubmarine = em.find( Submarine.class, yellowSubmarine.getId() );
    yellowSubmarine.setSize( 3 );
    try {
      em.flush();
      fail("Event not wired");
    }
    catch(InvalidStateException e) {
      assertEquals( 1, e.getInvalidValues().length );
    }
    finally {
      em.getTransaction().rollback();
      em.close();
    }

  }

  public Class[] getAnnotatedClasses() {
    return new Class[]{
        Commander.class,
        Submarine.class
    };
  }


  public Map getConfig() {
    Map map = super.getConfig();
    //Remove regular Validator wiring
    map.put( HibernatePersistence.EVENT_LISTENER_PREFIX + "." + "pre-insert",
        "" );
    map.put( HibernatePersistence.EVENT_LISTENER_PREFIX + "." + "pre-update",
        "" );
    return map;
  }
}
TOP

Related Classes of org.hibernate.validator.test.jpa.JPAValidateListenerTest

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.