/******************************************************************************* * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. * * Copyright (c) 2013,2014 by Peter Pilgrim, Addiscombe, Surrey, XeNoNiQUe UK * * All rights reserved. This program and the accompanying materials * are made available under the terms of the GNU GPL v3.0 * which accompanies this distribution, and is available at: * http://www.gnu.org/licenses/gpl-3.0.txt * * Developers: * Peter Pilgrim -- design, development and implementation * -- Blog: http://www.xenonique.co.uk/blog/ * -- Twitter: @peter_pilgrim * * Contributors: * *******************************************************************************/ package je7hb.beanvalidation.cargroups; import org.junit.BeforeClass; import org.junit.Test; import javax.validation.ConstraintViolation; import javax.validation.Validation; import javax.validation.Validator; import javax.validation.ValidatorFactory; import java.util.Set; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; /** * A unit test AddressValidatorTest to verify the operation of AddressValidatorTest * * @author Peter Pilgrim */ public class AddressPostCodeValidatorTest { private static Validator validator; @BeforeClass public static void setUp() { ValidatorFactory factory = Validation.buildDefaultValidatorFactory(); validator = factory.getValidator(); } @Test public void shouldValidateWithSpecificAreaOnly() { Address addr = new Address(); addr.setPostCode("SW1 AA"); Set<ConstraintViolation<Address>> constraintViolations = validator.validate(addr, Address.AreaSensitive.class ); System.out.printf("constraint violations: %s\n", constraintViolations); assertEquals(0, constraintViolations.size()); } @Test public void shouldNotValidateWithSpecificAreaOnly() { Address addr = new Address(); addr.setPostCode("N11 4AD"); Set<ConstraintViolation<Address>> constraintViolations = validator.validate(addr, Address.AreaSensitive.class ); System.out.printf("constraint violations: %s\n", constraintViolations); assertEquals(1, constraintViolations.size()); } @Test public void shouldValidateWithComplete() { Address addr = new Address(); addr.setStreet1("1 Granger Avenue"); addr.setCity("London"); addr.setPostCode("SW1 3KG"); Set<ConstraintViolation<Address>> constraintViolations = validator.validate(addr, Address.Complete.class ); System.out.printf("constraint violations: %s\n", constraintViolations); assertEquals(0, constraintViolations.size()); } @Test public void shouldNotValidateWithComplete() { Address addr = new Address(); addr.setStreet1("133 Bell Road"); addr.setCity("London"); addr.setPostCode("NW1 7SR"); Set<ConstraintViolation<Address>> constraintViolations = validator.validate(addr, Address.Complete.class ); System.out.printf("constraint violations: %s\n", constraintViolations); assertEquals(1, constraintViolations.size()); } @Test public void shouldValidateWithCompleteButNotDefault() { Address addr = new Address(); addr.setStreet1(null); addr.setCity(null); addr.setPostCode("SW1 1AA"); Set<ConstraintViolation<Address>> constraintViolations = validator.validate(addr, Address.Complete.class ); System.out.printf("**** constraint violations: %s\n", constraintViolations); assertEquals(2, constraintViolations.size()); } }