// $Id: ValidationTest.java 17620 2009-10-04 19:19:28Z hardy.ferentschik $ /* * JBoss, Home of Professional Open Source * Copyright 2009, Red Hat, Inc. and/or its affiliates, 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.validation; import java.util.ArrayList; import java.util.List; import javax.validation.Configuration; import javax.validation.Validation; import javax.validation.ValidationProviderResolver; import javax.validation.ValidatorFactory; import javax.validation.bootstrap.GenericBootstrap; import javax.validation.bootstrap.ProviderSpecificBootstrap; import javax.validation.spi.ValidationProvider; import org.jboss.test.audit.annotations.SpecAssertion; import org.jboss.test.audit.annotations.SpecAssertions; 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.assertEquals; import static org.testng.Assert.assertNotNull; import static org.testng.Assert.assertTrue; import static org.testng.Assert.fail; import org.testng.annotations.Test; import org.hibernate.jsr303.tck.common.TCKValidationProvider; import org.hibernate.jsr303.tck.common.TCKValidatorConfiguration; import org.hibernate.jsr303.tck.util.TestUtil; /** * Tests for the implementation of <code>Validation</code>. * *Modified by google. *<ul> *<li>Removed testVerifyMethodsOfValidationObjects *</ul * * @author Hardy Ferentschik */ @Artifact(artifactType = ArtifactType.JSR303) @Classes({ TestUtil.class, TestUtil.PathImpl.class, TestUtil.NodeImpl.class, TCKValidationProvider.class, TCKValidationProvider.DummyValidatorFactory.class, TCKValidatorConfiguration.class }) public class ValidationTest extends AbstractTest { @Test @SpecAssertion(section = "4.4.5", id = "a") public void testBuildDefaultValidatorFactory() { ValidatorFactory defaultFactory = Validation.buildDefaultValidatorFactory(); assertNotNull( defaultFactory, "We should be able to get a factory." ); ValidatorFactory defaultProviderFactory = Validation.byDefaultProvider().configure().buildValidatorFactory(); assertNotNull( defaultProviderFactory, "We should be able to get a factory." ); assertEquals( defaultFactory.getClass(), defaultFactory.getClass(), "The factories have to be identical." ); } @Test @SpecAssertions({ @SpecAssertion(section = "4.4.5", id = "b"), @SpecAssertion(section = "4.4.5", id = "e") }) public void testCustomValidationProviderResolution() { ValidationProviderResolver resolver = new ValidationProviderResolver() { public List<ValidationProvider<?>> getValidationProviders() { List<ValidationProvider<?>> list = new ArrayList<ValidationProvider<?>>(); list.add( new TCKValidationProvider() ); return list; } }; GenericBootstrap bootstrap = Validation.byDefaultProvider(); Configuration<?> config = bootstrap.providerResolver( resolver ).configure(); ValidatorFactory factory = config.buildValidatorFactory(); assertTrue( factory instanceof TCKValidationProvider.DummyValidatorFactory ); } @Test @SpecAssertions({ @SpecAssertion(section = "4.4.5", id = "c"), @SpecAssertion(section = "4.4.5", id = "e") }) public void testSpecificValidationProvider() { ValidationProviderResolver resolver = new ValidationProviderResolver() { public List<ValidationProvider<?>> getValidationProviders() { List<ValidationProvider<?>> list = new ArrayList<ValidationProvider<?>>(); list.add( new TCKValidationProvider() ); return list; } }; // with resolver ProviderSpecificBootstrap<TCKValidatorConfiguration> bootstrap = Validation.byProvider( TCKValidationProvider.class ); Configuration<?> config = bootstrap.providerResolver( resolver ).configure(); ValidatorFactory factory = config.buildValidatorFactory(); assertTrue( factory instanceof TCKValidationProvider.DummyValidatorFactory ); } }