Package org.hibernate.test.mapping

Source Code of org.hibernate.test.mapping.PersistentClassVisitorTest$PersistentClassVisitorValidator

/*
* Created on 06-Dec-2004
*
*/
package org.hibernate.test.mapping;

import junit.framework.Test;
import junit.framework.TestSuite;

import org.hibernate.mapping.JoinedSubclass;
import org.hibernate.mapping.PersistentClassVisitor;
import org.hibernate.mapping.RootClass;
import org.hibernate.mapping.SingleTableSubclass;
import org.hibernate.mapping.Subclass;
import org.hibernate.mapping.UnionSubclass;
import org.hibernate.testing.junit.UnitTestCase;

/**
* @author max
*
*/
public class PersistentClassVisitorTest extends UnitTestCase {

  public PersistentClassVisitorTest(String string) {
    super( string );
  }

  static public class PersistentClassVisitorValidator implements PersistentClassVisitor {

    private Object validate(Class expectedClass, Object visitee) {
      if (!visitee.getClass().getName().equals(expectedClass.getName())) {
        throw new IllegalStateException(visitee.getClass().getName()
            + " did not call proper accept method. Was "
            + expectedClass.getName());
      }
      return null;
    }

    public Object accept(RootClass class1) {
      return validate(RootClass.class, class1);
    }

    public Object accept(UnionSubclass subclass) {
      return validate(UnionSubclass.class, subclass);
    }

    public Object accept(SingleTableSubclass subclass) {
      return validate(SingleTableSubclass.class, subclass);
    }

    public Object accept(JoinedSubclass subclass) {
      return validate(JoinedSubclass.class, subclass);
    }

    public Object accept(Subclass subclass) {
      return validate(Subclass.class, subclass);
    }


  };

  public void testProperCallbacks() {

    PersistentClassVisitorValidator vv = new PersistentClassVisitorValidator();

    new RootClass().accept(vv);
    new Subclass(new RootClass()).accept(vv);
    new JoinedSubclass(new RootClass()).accept(vv);
    new SingleTableSubclass(new RootClass()).accept(vv);
    new UnionSubclass(new RootClass()).accept(vv);

  }

  public static Test suite() {
    return new TestSuite(PersistentClassVisitorTest.class);
  }

}
TOP

Related Classes of org.hibernate.test.mapping.PersistentClassVisitorTest$PersistentClassVisitorValidator

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.