You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by dw...@apache.org on 2009/06/01 18:18:16 UTC
svn commit: r780704 -
/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/validation/TestValidationFactory.java
Author: dwoods
Date: Mon Jun 1 16:18:16 2009
New Revision: 780704
URL: http://svn.apache.org/viewvc?rev=780704&view=rev
Log:
OPENJPA-1102 additional validation factory tests. test scenario #4 will be addressed in OPENJPA-1111.
Modified:
openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/validation/TestValidationFactory.java
Modified: openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/validation/TestValidationFactory.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/validation/TestValidationFactory.java?rev=780704&r1=780703&r2=780704&view=diff
==============================================================================
--- openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/validation/TestValidationFactory.java (original)
+++ openjpa/trunk/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/persistence/validation/TestValidationFactory.java Mon Jun 1 16:18:16 2009
@@ -23,13 +23,16 @@
import org.apache.openjpa.persistence.OpenJPAEntityManagerFactory;
import org.apache.openjpa.persistence.OpenJPAPersistence;
import org.apache.openjpa.persistence.query.SimpleEntity;
+import org.apache.openjpa.persistence.test.AllowFailure;
import org.apache.openjpa.persistence.test.SingleEMFTestCase;
/**
* Tests the new Bean Validation Factory support in the JPA 2.0 spec.
* Basic (no provider) Validation scenarios being tested:
* 1) By default, ValidationFactory is null
- * 2) ValidationFactory can be provided by createEMF(Map props)
+ * 2) An invalid ValidationFactory with mode of NONE will not cause exception
+ * 3) An invalid ValidationFactory with mode of AUTO will not cause exception
+ * 4) An invalid ValidationFactory with mode of CALLBACK will cause exception
*
* @version $Rev$ $Date$
*/
@@ -58,15 +61,16 @@
assertNotNull(conf);
assertEquals("Default ValidationFactory",
null,
- conf.getValidationFactory());
+ conf.getValidationFactoryInstance());
}
/**
* Scenario being tested:
- * 2) ValidationFactory can be provided by createEMF(Map props)
+ * 2) An invalid ValidationFactory with a mode of NONE will not
+ * cause an exception
*/
public void testValidationFactory2() {
- getLog().trace("testValidationFactory2() - createEMF(Map props)");
+ getLog().trace("testValidationFactory2() - ignored invalid factory");
OpenJPAEntityManagerFactory emf = null;
// create the Map to test overrides
@@ -81,12 +85,81 @@
"org/apache/openjpa/persistence/validation/persistence.xml",
props);
assertNotNull(emf);
- // verify validation mode
+ // verify same "validation factory" object is returned
OpenJPAConfiguration conf = emf.getConfiguration();
assertNotNull(conf);
assertEquals("ValidationFactory",
this.getClass(),
- conf.getValidationFactory());
+ conf.getValidationFactoryInstance());
+ }
+
+ /**
+ * Scenario being tested:
+ * 3) An invalid ValidationFactory with a mode of AUTO will not
+ * cause an exception
+ */
+ public void testValidationFactory3() {
+ getLog().trace("testValidationFactory3() - optional invalid factory");
+ OpenJPAEntityManagerFactory emf = null;
+
+ // create the Map to test overrides
+ // Just use current class object, as we have no provider to test with
+ Map<String,Object> props = new HashMap<String,Object>();
+ props.put("javax.persistence.validation.factory",
+ this.getClass());
+
+ // create our EMF
+ emf = OpenJPAPersistence.createEntityManagerFactory(
+ "simple-auto-mode",
+ "org/apache/openjpa/persistence/validation/persistence.xml",
+ props);
+ assertNotNull(emf);
+ // verify same "validation factory" object is returned
+ OpenJPAConfiguration conf = emf.getConfiguration();
+ assertNotNull(conf);
+ assertEquals("ValidationFactory",
+ this.getClass(),
+ conf.getValidationFactoryInstance());
+ }
+
+ /**
+ * Scenario being tested:
+ * 4) An invalid ValidationFactory with a mode of CALLBACK will
+ * cause an exception
+ */
+ @AllowFailure(message="This will fail until OPENJPA-1111 is resolved.")
+ public void testValidationFactory4() {
+ getLog().trace("testValidationFactory4() - required invalid factory");
+ OpenJPAEntityManagerFactory emf = null;
+
+ // create the Map to test overrides
+ // Just use current class object, as we have no provider to test with
+ Map<String,Object> props = new HashMap<String,Object>();
+ props.put("javax.persistence.validation.factory",
+ this.getClass());
+ props.put("javax.persistence.validation.mode",
+ String.valueOf(ValidationMode.CALLBACK));
+
+ try {
+ // create our EMF
+ emf = OpenJPAPersistence.createEntityManagerFactory(
+ "simple-callback-mode",
+ "org/apache/openjpa/persistence/validation/persistence.xml",
+ props);
+ assertNotNull(emf);
+ // verify validation mode
+ OpenJPAConfiguration conf = emf.getConfiguration();
+ assertNotNull(conf);
+ assertEquals("Validation mode",
+ String.valueOf(ValidationMode.CALLBACK),
+ conf.getValidationMode());
+ fail("Expected an exception when ValidationMode=CALLBACK and " +
+ "an invalid ValidatorFactory is provided.");
+ } catch (Exception e) {
+ // expected
+ getLog().trace("testValidationFactory4() - caught expected " +
+ "exception", e);
+ }
}