Package com.softwaremill.common.cdi.validator

Source Code of com.softwaremill.common.cdi.validator.AnnotationWrapper

package com.softwaremill.common.cdi.validator;

import org.testng.Assert;
import org.testng.annotations.Test;
import com.softwaremill.common.cdi.validation.NoSpecialChars;
import com.softwaremill.common.cdi.validation.NoSpecialCharsValidator;

/**
* Created by amorfis on Dec 3, 2010 1:40:58 PM
*/
public class NoSpecialCharsValidatorTest {

    @Test
    public void shouldAllowRegularChars() throws NoSuchFieldException {
        //given
        class AnnotationWrapper {

            @NoSpecialChars
            public String field;

        }

        NoSpecialCharsValidator validator = initializeValidator(AnnotationWrapper.class);

        //when
        boolean isValid = validator.isValid("PawelStawicki", null);

        //then
        Assert.assertTrue(isValid, "Regular characters considered invalid");
    }

    private NoSpecialCharsValidator initializeValidator(Class<?> classWithAnnotation) throws NoSuchFieldException {
        NoSpecialChars constraint = classWithAnnotation.getField("field").getAnnotation(NoSpecialChars.class);
        NoSpecialCharsValidator validator = new NoSpecialCharsValidator();
        validator.initialize(constraint);

        return validator;
    }

    @Test
    public void shouldNotAllowSpecialChars() throws NoSuchFieldException {
        //given
        class AnnotationWrapper {

            @NoSpecialChars
            public String field;

        }

        NoSpecialCharsValidator validator = initializeValidator(AnnotationWrapper.class);

        //when
        boolean manySpecials = validator.isValid("*%%Pawel@#$Stawicki**", null);
        boolean dot = validator.isValid("Pawel.Stawicki", null);
        boolean at = validator.isValid("Pawel@Stawicki", null);

        //then
        Assert.assertFalse(manySpecials, "Special characters considered valid");
        Assert.assertFalse(dot, "Special characters considered valid");
        Assert.assertFalse(at, "Special characters considered valid");
    }

    @Test
    public void shouldAllowSomeSpecialCharsWhenAsked() throws NoSuchFieldException {
        //given
        class AnnotationWrapper {

            @NoSpecialChars(charsAllowed = "@.")
            public String field;

        }

        NoSpecialCharsValidator validator = initializeValidator(AnnotationWrapper.class);

        //when
        boolean isValid = validator.isValid("Pawel@Stawicki.pl", null);

        //then
        Assert.assertTrue(isValid, "Special characters which should be valid considered valid");
    }

}
TOP

Related Classes of com.softwaremill.common.cdi.validator.AnnotationWrapper

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.