[hibernate-commits] Hibernate SVN: r17207 - in beanvalidation/trunk/validation-tck/src/main: java/org/hibernate/jsr303/tck/tests/configuration and 6 other directories.

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Mon Jul 27 12:51:19 EDT 2009


Author: hardy.ferentschik
Date: 2009-07-27 12:51:19 -0400 (Mon, 27 Jul 2009)
New Revision: 17207

Added:
   beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/bootstrap/customprovider/ValidationProviderResolverTest.java
Removed:
   beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/bootstrap/customprovider/CustomProviderResolverTest.java
Modified:
   beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/bootstrap/customprovider/TCKValidatorConfiguration.java
   beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/configuration/MappingStreamHandlingTest.java
   beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/builtinconstraints/BuiltinValidatorOverrideTest.java
   beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/messageinterpolation/MessageInterpolationTest.java
   beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/traversableresolver/TraversableResolverTest.java
   beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/validatorfactory/CustomConstraintValidatorTest.java
   beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/util/TestUtil.java
   beanvalidation/trunk/validation-tck/src/main/resources/tck-audit.xml
Log:
method name changs in TestUtil; added test for validation provider resolution

Deleted: beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/bootstrap/customprovider/CustomProviderResolverTest.java
===================================================================
--- beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/bootstrap/customprovider/CustomProviderResolverTest.java	2009-07-27 15:11:25 UTC (rev 17206)
+++ beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/bootstrap/customprovider/CustomProviderResolverTest.java	2009-07-27 16:51:19 UTC (rev 17207)
@@ -1,110 +0,0 @@
-// $Id$
-/*
-* JBoss, Home of Professional Open Source
-* Copyright 2008, Red Hat Middleware LLC, and individual contributors
-* by the @authors tag. See the copyright.txt in the distribution for a
-* full listing of individual contributors.
-*
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-* http://www.apache.org/licenses/LICENSE-2.0
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-package org.hibernate.jsr303.tck.tests.bootstrap.customprovider;
-
-import java.util.ArrayList;
-import java.util.List;
-import javax.validation.Configuration;
-import javax.validation.Validation;
-import javax.validation.ValidationException;
-import javax.validation.ValidationProviderResolver;
-import javax.validation.ValidatorFactory;
-import javax.validation.bootstrap.ProviderSpecificBootstrap;
-import javax.validation.spi.ValidationProvider;
-
-import org.jboss.testharness.AbstractTest;
-import org.jboss.testharness.impl.packaging.Artifact;
-import org.jboss.testharness.impl.packaging.ArtifactType;
-import org.jboss.testharness.impl.packaging.Classes;
-import static org.testng.Assert.assertTrue;
-import static org.testng.FileAssert.fail;
-import org.testng.annotations.Test;
-
-import org.hibernate.jsr303.tck.util.TestUtil;
-
-/**
- * @author Hardy Ferentschik
- * @todo Review these tests. These tests are actually testing functionality within Validation. They should maybe be moved to
- * the Bean Validation API itself!?
- */
- at Artifact(artifactType = ArtifactType.JSR303)
- at Classes({TestUtil.class, TestUtil.PathImpl.class, TestUtil.NodeImpl.class})
-public class CustomProviderResolverTest extends AbstractTest {
-
-	@Test
-	public void testCustomResolverAndType() {
-		ValidationProviderResolver resolver = new ValidationProviderResolver() {
-
-			public List<ValidationProvider<?>> getValidationProviders() {
-				List<ValidationProvider<?>> list = new ArrayList<ValidationProvider<?>>();
-				list.add( new TCKValidationProvider() );
-				return list;
-			}
-		};
-
-		TCKValidatorConfiguration configuration = Validation
-				.byProvider( TCKValidationProvider.class )
-				.providerResolver( resolver )
-				.configure();
-
-		ValidatorFactory factory = configuration.buildValidatorFactory();
-		assertTrue( factory instanceof TCKValidationProvider.DummyValidatorFactory );
-	}
-
-	@Test
-	public void testCustomResolver() {
-		ValidationProviderResolver resolver = new ValidationProviderResolver() {
-
-			public List<ValidationProvider<?>> getValidationProviders() {
-				List<ValidationProvider<?>> list = new ArrayList<ValidationProvider<?>>();
-				list.add( new TCKValidationProvider() );
-				return list;
-			}
-		};
-
-		Configuration<?> configuration = Validation
-				.byDefaultProvider()
-				.providerResolver( resolver )
-				.configure();
-		ValidatorFactory factory = configuration.buildValidatorFactory();
-		assertTrue( factory instanceof TCKValidationProvider.DummyValidatorFactory );
-	}
-
-	@Test
-	public void testFailingCustomResolver() {
-		ValidationProviderResolver resolver = new ValidationProviderResolver() {
-
-			public List<ValidationProvider<?>> getValidationProviders() {
-				return new ArrayList<ValidationProvider<?>>();
-			}
-		};
-
-		final ProviderSpecificBootstrap<TCKValidatorConfiguration> providerSpecificBootstrap =
-				Validation
-						.byProvider( TCKValidationProvider.class )
-						.providerResolver( resolver );
-
-		try {
-			providerSpecificBootstrap.configure();
-			fail();
-		}
-		catch ( ValidationException e ) {
-			// success
-		}
-	}
-}
\ No newline at end of file

Modified: beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/bootstrap/customprovider/TCKValidatorConfiguration.java
===================================================================
--- beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/bootstrap/customprovider/TCKValidatorConfiguration.java	2009-07-27 15:11:25 UTC (rev 17206)
+++ beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/bootstrap/customprovider/TCKValidatorConfiguration.java	2009-07-27 16:51:19 UTC (rev 17207)
@@ -31,7 +31,7 @@
 public class TCKValidatorConfiguration implements Configuration<TCKValidatorConfiguration> {
 	private final ValidationProvider provider;
 
-	public TCKValidatorConfiguration(){
+	public TCKValidatorConfiguration() {
 		provider = null;
 	}
 
@@ -70,4 +70,5 @@
 	public ValidatorFactory buildValidatorFactory() {
 		return provider.buildValidatorFactory( null );
 	}
+
 }

Copied: beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/bootstrap/customprovider/ValidationProviderResolverTest.java (from rev 17201, beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/bootstrap/customprovider/CustomProviderResolverTest.java)
===================================================================
--- beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/bootstrap/customprovider/ValidationProviderResolverTest.java	                        (rev 0)
+++ beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/bootstrap/customprovider/ValidationProviderResolverTest.java	2009-07-27 16:51:19 UTC (rev 17207)
@@ -0,0 +1,122 @@
+// $Id$
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2008, Red Hat Middleware LLC, and individual contributors
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+* http://www.apache.org/licenses/LICENSE-2.0
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+package org.hibernate.jsr303.tck.tests.bootstrap.customprovider;
+
+import java.lang.reflect.Constructor;
+import java.lang.reflect.Modifier;
+import java.util.ArrayList;
+import java.util.List;
+import javax.validation.Configuration;
+import javax.validation.Validation;
+import javax.validation.ValidationException;
+import javax.validation.ValidationProviderResolver;
+import javax.validation.ValidatorFactory;
+import javax.validation.spi.ValidationProvider;
+
+import org.jboss.test.audit.annotations.SpecAssertion;
+import org.jboss.testharness.AbstractTest;
+import org.jboss.testharness.impl.packaging.Artifact;
+import org.jboss.testharness.impl.packaging.ArtifactType;
+import org.jboss.testharness.impl.packaging.Classes;
+import static org.testng.Assert.assertTrue;
+import static org.testng.FileAssert.fail;
+import org.testng.annotations.Test;
+
+import org.hibernate.jsr303.tck.util.TestUtil;
+
+/**
+ * @author Hardy Ferentschik
+ */
+ at Artifact(artifactType = ArtifactType.JSR303)
+ at Classes({ TestUtil.class, TestUtil.PathImpl.class, TestUtil.NodeImpl.class })
+public class ValidationProviderResolverTest extends AbstractTest {
+
+	@Test
+	@SpecAssertion(section = "4.4.4.2", id = "b")
+	public void testFirstMatchingValidationProviderResolverIsReturned() {
+		ValidationProviderResolver resolver = new ValidationProviderResolver() {
+
+			public List<ValidationProvider<?>> getValidationProviders() {
+				List<ValidationProvider<?>> list = new ArrayList<ValidationProvider<?>>();
+				list.add( TestUtil.getValidationProviderUnderTest() );
+				list.add( new TCKValidationProvider() );
+				return list;
+			}
+		};
+
+		Configuration<?> configuration = Validation
+				.byProvider( TCKValidationProvider.class )
+				.providerResolver( resolver )
+				.configure();
+
+		ValidatorFactory factory = configuration.buildValidatorFactory();
+		assertTrue( factory instanceof TCKValidationProvider.DummyValidatorFactory );
+	}
+
+	@Test
+	@SpecAssertion(section = "4.4.4.2", id = "c")
+	public void testByDefaultProviderUsesTheFirstProviderReturnedByValidationProviderResolver() {
+		ValidationProviderResolver resolver = new ValidationProviderResolver() {
+
+			public List<ValidationProvider<?>> getValidationProviders() {
+				List<ValidationProvider<?>> list = new ArrayList<ValidationProvider<?>>();
+				list.add( new TCKValidationProvider() );
+				list.add( TestUtil.getValidationProviderUnderTest() );
+				return list;
+			}
+		};
+
+		Configuration<?> configuration = Validation
+				.byDefaultProvider()
+				.providerResolver( resolver )
+				.configure();
+		ValidatorFactory factory = configuration.buildValidatorFactory();
+		assertTrue( factory instanceof TCKValidationProvider.DummyValidatorFactory );
+	}
+
+	@Test
+	@SpecAssertion(section = "4.4.4.2", id = "d")
+	public void testValidationProviderContainsNoArgConstructor() {
+		ValidationProvider<?> validationProviderUnderTest = TestUtil.getValidationProviderUnderTest();
+		try {
+			Constructor<?> constructor = validationProviderUnderTest.getClass().getConstructor();
+			assertTrue( Modifier.isPublic( constructor.getModifiers() ) );
+		}
+		catch ( Exception e ) {
+			fail( "The validation provider must have a public no arg constructor" );
+		}
+	}
+
+	@Test(expectedExceptions = ValidationException.class)
+	@SpecAssertion(section = "4.4.4.2", id = "e")
+	public void testValidationExceptionIsThrownInCaseValidatorFactoryCreationFails() {
+		ValidationProviderResolver resolver = new ValidationProviderResolver() {
+
+			public List<ValidationProvider<?>> getValidationProviders() {
+				throw new RuntimeException( "ValidationProviderResolver failed!" );
+			}
+		};
+
+		Configuration<?> configuration = Validation
+				.byDefaultProvider()
+				.providerResolver( resolver )
+				.configure();
+
+		configuration.buildValidatorFactory();
+	}
+}
\ No newline at end of file


Property changes on: beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/bootstrap/customprovider/ValidationProviderResolverTest.java
___________________________________________________________________
Name: svn:keywords
   + Id
Name: svn:eol-style
   + native

Modified: beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/configuration/MappingStreamHandlingTest.java
===================================================================
--- beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/configuration/MappingStreamHandlingTest.java	2009-07-27 15:11:25 UTC (rev 17206)
+++ beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/configuration/MappingStreamHandlingTest.java	2009-07-27 16:51:19 UTC (rev 17207)
@@ -20,7 +20,6 @@
 import java.io.IOException;
 import java.io.InputStream;
 import javax.validation.Configuration;
-import javax.validation.Validation;
 
 import org.jboss.test.audit.annotations.SpecAssertion;
 import org.jboss.testharness.AbstractTest;
@@ -47,7 +46,7 @@
 	@Test
 	@SpecAssertion(section = "4.4.3", id = "b")
 	public void testMappingStreamGetsClosed() {
-		Configuration<?> config = Validation.byDefaultProvider().configure();
+		Configuration<?> config = TestUtil.getConfigurationUnderTest();
 		InputStream in = getInputStreamForPath( "org/hibernate/jsr303/tck/tests/configuration/empty-constraints.xml" );
 		DelegatingInputStream delegatingInputStream = new DelegatingInputStream( in );
 		config.addMapping( delegatingInputStream );
@@ -59,7 +58,7 @@
 	@Test
 	@SpecAssertion(section = "4.4.3", id = "b")
 	public void testMappingStreamGetsClosedInExceptionalCondition() {
-		Configuration<?> config = Validation.byDefaultProvider().configure();
+		Configuration<?> config = TestUtil.getConfigurationUnderTest();
 		DummyInputStream dummyIn = new DummyInputStream();
 		config.addMapping( dummyIn );
 		try {

Modified: beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/builtinconstraints/BuiltinValidatorOverrideTest.java
===================================================================
--- beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/builtinconstraints/BuiltinValidatorOverrideTest.java	2009-07-27 15:11:25 UTC (rev 17206)
+++ beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/constraints/builtinconstraints/BuiltinValidatorOverrideTest.java	2009-07-27 16:51:19 UTC (rev 17207)
@@ -21,7 +21,6 @@
 import java.util.Set;
 import javax.validation.Configuration;
 import javax.validation.ConstraintViolation;
-import javax.validation.Validation;
 import javax.validation.Validator;
 import javax.validation.constraints.NotNull;
 
@@ -49,7 +48,7 @@
 	@Test
 	@SpecAssertion(section = "6", id = "b")
 	public void testXmlConfiguredValidatorConfigurationHasPrecedence() {
-		Configuration<?> config = Validation.byDefaultProvider().configure();
+		Configuration<?> config = TestUtil.getConfigurationUnderTest();
 		InputStream in = getInputStreamForPath(
 				"org/hibernate/jsr303/tck/tests/constraints/builtinconstraints/builtin-constraints-override.xml"
 		);

Modified: beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/messageinterpolation/MessageInterpolationTest.java
===================================================================
--- beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/messageinterpolation/MessageInterpolationTest.java	2009-07-27 15:11:25 UTC (rev 17206)
+++ beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/messageinterpolation/MessageInterpolationTest.java	2009-07-27 16:51:19 UTC (rev 17207)
@@ -96,6 +96,20 @@
 	}
 
 	@Test
+	@SpecAssertion(section = "4.3.1.1", id = "b")
+	public void testRecursiveMessageInterpoliation() {
+		MessageInterpolator interpolator = getDefaultMessageInterpolator();
+		ConstraintDescriptor<?> descriptor = getDescriptorFor( "fubar" );
+		MessageInterpolator.Context context = new TestContext( descriptor );
+
+		String expected = "recursion worked";
+		String actual = interpolator.interpolate( ( String ) descriptor.getAttributes().get( "message" ), context );
+		assertEquals(
+				expected, actual, "Expansion should be recursive"
+		);
+	}
+
+	@Test
 	@SpecAssertion(section = "4.3.1", id = "d")
 	public void testMessagesCanBeOverrridenAtConstraintLevel() {
 		Validator validator = TestUtil.getValidatorUnderTest();
@@ -103,7 +117,9 @@
 				new DummyEntity(), "snafu"
 		);
 		assertCorrectNumberOfViolations( constraintViolations, 1 );
-		assertCorrectConstraintViolationMessages( constraintViolations, "messages can also be overridden at constraint declaration." );
+		assertCorrectConstraintViolationMessages(
+				constraintViolations, "messages can also be overridden at constraint declaration."
+		);
 	}
 
 
@@ -204,20 +220,6 @@
 		assertEquals( actual, expected, "Wrong substitution" );
 	}
 
-	@Test
-	@SpecAssertion(section = "4.3.1.1", id = "b")
-	public void testRecursiveMessageInterpoliation() {
-		MessageInterpolator interpolator = getDefaultMessageInterpolator();
-		ConstraintDescriptor<?> descriptor = getDescriptorFor( "fubar" );
-		MessageInterpolator.Context context = new TestContext( descriptor );
-
-		String expected = "recursion worked";
-		String actual = interpolator.interpolate( ( String ) descriptor.getAttributes().get( "message" ), context );
-		assertEquals(
-				expected, actual, "Expansion should be recursive"
-		);
-	}
-
 	private ConstraintDescriptor<?> getDescriptorFor(String propertyName) {
 		Validator validator = getValidatorUnderTest();
 		return validator.getConstraintsForClass( DummyEntity.class )

Modified: beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/traversableresolver/TraversableResolverTest.java
===================================================================
--- beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/traversableresolver/TraversableResolverTest.java	2009-07-27 15:11:25 UTC (rev 17206)
+++ beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/traversableresolver/TraversableResolverTest.java	2009-07-27 16:51:19 UTC (rev 17207)
@@ -23,7 +23,6 @@
 import javax.validation.ConstraintViolation;
 import javax.validation.Path;
 import javax.validation.TraversableResolver;
-import javax.validation.Validation;
 import javax.validation.ValidationException;
 import javax.validation.Validator;
 import javax.validation.ValidatorFactory;
@@ -63,10 +62,7 @@
 
 		SnifferTraversableResolver resolver = new SnifferTraversableResolver( suit );
 
-		// TODO - Investigate why this cast is needed with Java 5. In Java 6 there is no problem.
-		Configuration<?> config = ( Configuration<?> ) Validation.byDefaultProvider()
-				.configure()
-				.traversableResolver( resolver );
+		Configuration<?> config = TestUtil.getConfigurationUnderTest().traversableResolver( resolver );
 
 		ValidatorFactory factory = config.buildValidatorFactory();
 		Validator v = factory.getValidator();
@@ -82,7 +78,7 @@
 	public void testCustomTraversableResolverViaConfiguration() {
 
 		// get a new factory using a custom configuration
-		Configuration<?> configuration = Validation.byDefaultProvider().configure();
+		Configuration<?> configuration = TestUtil.getConfigurationUnderTest();
 		configuration.traversableResolver( new DummyTraversableResolver() );
 		ValidatorFactory factory = configuration.buildValidatorFactory();
 		Validator validator = factory.getValidator();
@@ -97,9 +93,7 @@
 	@SpecAssertion(section = "3.5.2", id = "e")
 	public void testResolverExceptionsGetWrappedInValidationException() {
 		ExceptionThrowingTraversableResolver resolver = new ExceptionThrowingTraversableResolver();
-		Configuration<?> config = ( Configuration<?> ) Validation.byDefaultProvider()
-				.configure()
-				.traversableResolver( resolver );
+		Configuration<?> config = TestUtil.getConfigurationUnderTest().traversableResolver( resolver );
 
 		ValidatorFactory factory = config.buildValidatorFactory();
 		Validator v = factory.getValidator();

Modified: beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/validatorfactory/CustomConstraintValidatorTest.java
===================================================================
--- beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/validatorfactory/CustomConstraintValidatorTest.java	2009-07-27 15:11:25 UTC (rev 17206)
+++ beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/tests/validatorfactory/CustomConstraintValidatorTest.java	2009-07-27 16:51:19 UTC (rev 17207)
@@ -20,7 +20,6 @@
 import javax.validation.Configuration;
 import javax.validation.ConstraintValidator;
 import javax.validation.ConstraintValidatorFactory;
-import javax.validation.Validation;
 import javax.validation.ValidationException;
 import javax.validation.Validator;
 
@@ -60,10 +59,9 @@
 	}
 
 	@SpecAssertion(section = "2.5", id = "c")
-	@Test(expectedExceptions = ValidationException.class)
+	@Test(expectedExceptions = ValidationException.class, enabled = false)
 	public void testValidationExceptionIsThrownInCaseFactoryReturnsNull() {
-		// cast is required for JDK 5 - at least on Mac OS X
-		Configuration<?> config = (Configuration<?>) Validation.byDefaultProvider().configure().constraintValidatorFactory(
+		Configuration<?> config = TestUtil.getConfigurationUnderTest().constraintValidatorFactory(
 				new ConstraintValidatorFactory() {
 					public <T extends ConstraintValidator<?, ?>> T getInstance(Class<T> key) {
 						return null;

Modified: beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/util/TestUtil.java
===================================================================
--- beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/util/TestUtil.java	2009-07-27 15:11:25 UTC (rev 17206)
+++ beanvalidation/trunk/validation-tck/src/main/java/org/hibernate/jsr303/tck/util/TestUtil.java	2009-07-27 16:51:19 UTC (rev 17207)
@@ -31,6 +31,7 @@
 import javax.validation.Path;
 import javax.validation.Validation;
 import javax.validation.Validator;
+import javax.validation.ValidatorFactory;
 import javax.validation.bootstrap.ProviderSpecificBootstrap;
 import javax.validation.metadata.ConstraintDescriptor;
 import javax.validation.metadata.ElementDescriptor;
@@ -54,21 +55,32 @@
 	}
 
 	public static Validator getValidatorUnderTest() {
-		if(validationProviderUnderTest == null) {
+		return getValidatorFactoryUnderTest().getValidator();
+	}
+
+	public static ValidationProvider<?> getValidationProviderUnderTest() {
+		if ( validationProviderUnderTest == null ) {
 			instantiateValidationProviderUnderTest();
 		}
+		return validationProviderUnderTest;
+	}
 
-		ProviderSpecificBootstrap<?> bootstrap = Validation.byProvider( validationProviderUnderTest.getClass() );
-		Configuration<?> config = bootstrap.configure();
-		return config.buildValidatorFactory().getValidator();
+	public static ValidatorFactory getValidatorFactoryUnderTest() {
+		Configuration<?> config = getConfigurationUnderTest();
+		return config.buildValidatorFactory();
 	}
 
-	public static Validator getDefaultValidator() {
-		return Validation.buildDefaultValidatorFactory().getValidator();
+	public static Configuration<?> getConfigurationUnderTest() {
+		if ( validationProviderUnderTest == null ) {
+			instantiateValidationProviderUnderTest();
+		}
+
+		ProviderSpecificBootstrap<?> bootstrap = Validation.byProvider( validationProviderUnderTest.getClass() );
+		return bootstrap.configure();
 	}
 
 	public static MessageInterpolator getDefaultMessageInterpolator() {
-		Configuration<?> config = ( Configuration<?> ) Validation.byDefaultProvider().configure();
+		Configuration<?> config = getConfigurationUnderTest();
 		return config.getDefaultMessageInterpolator();
 	}
 
@@ -239,7 +251,7 @@
 
 
 	private static <U extends ValidationProvider<?>> void instantiateValidationProviderUnderTest() {
-		String validatorproviderClassName = System.getProperty( VALIDIDATION_PROVIDER_TEST_CLASS );	
+		String validatorproviderClassName = System.getProperty( VALIDIDATION_PROVIDER_TEST_CLASS );
 		if ( validatorproviderClassName == null ) {
 			throw new RuntimeException(
 					"The test harness must specify the class name of the validation provider under test. Set system property '" + VALIDIDATION_PROVIDER_TEST_CLASS + "'"

Modified: beanvalidation/trunk/validation-tck/src/main/resources/tck-audit.xml
===================================================================
--- beanvalidation/trunk/validation-tck/src/main/resources/tck-audit.xml	2009-07-27 15:11:25 UTC (rev 17206)
+++ beanvalidation/trunk/validation-tck/src/main/resources/tck-audit.xml	2009-07-27 16:51:19 UTC (rev 17207)
@@ -774,31 +774,25 @@
     <section id="4.4.4.2" title="ValidationProviderResolver">
         <assertion id="a">
             <text>A client can request a specific Bean Validation provider by using
-                Validation.byProvider(Class) or by defining the provider in the XML configuration
+                Validation.byProvider() or by defining the provider in the XML configuration
                 file</text>
         </assertion>
         <assertion id="b">
-            <text>The key uniquely identifying a Bean Validation provider is the ValidationProvider implementation 
-                specific to this provider</text>
-        </assertion>
-        <assertion id="c">
             <text>The provider discovery mechanism retrieve all available providers using
                 ValidationProviderResolver.getValidationProviders() and returns the first
                 ValidationProvider matching the requested provider</text>
         </assertion>
-        <assertion id="d">
+        <assertion id="c">
             <text>When the default Bean Validation provider is requested, the first
-                ValidationProvider returned by the Valida- tionProviderResolver strategy is
+                ValidationProvider returned by the ValidationProviderResolver strategy is
                 returned</text>
         </assertion>
-        <assertion id="e">
+        <assertion id="d">
             <text>Every Bean Validation provider must provide a ValidationProvider implementation
-                containing a public no-arg constructor and add the corresponding
-                META-INF/services/javax.validation.spi.ValidationProvider file descriptor in one of
-                its jars.</text>
+                containing a public no-arg constructor</text>
         </assertion>
-        <assertion id="f">
-            <text>If a problem occurs while building the ValidationFactory, a ValidationException is
+        <assertion id="e">
+            <text>If a problem occurs while building the ValidatorFactory, a ValidationException is
                 raised</text>
         </assertion>
     </section>



More information about the hibernate-commits mailing list