001 /** 002 * Copyright 2005-2011 The Kuali Foundation 003 * 004 * Licensed under the Educational Community License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.opensource.org/licenses/ecl2.php 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016 package org.kuali.rice.krad.datadictionary.validation.charlevel; 017 018 import org.junit.Test; 019 import org.kuali.rice.kns.datadictionary.validation.charlevel.AlphaNumericValidationPattern; 020 import org.kuali.rice.krad.datadictionary.validation.ValidationTestUtils; 021 import org.kuali.rice.test.BaseRiceTestCase; 022 023 /** 024 * AlphaNumericValidationPatternTest tests {@link AlphaNumericValidationPattern} 025 * 026 * @author Kuali Rice Team (rice.collab@kuali.org) 027 */ 028 public class AlphaNumericValidationPatternTest extends BaseRiceTestCase { 029 private AlphaNumericValidationPattern pattern; 030 031 @Override 032 public void setUp() throws Exception { 033 super.setUp(); 034 pattern = new AlphaNumericValidationPattern(); 035 } 036 037 /** 038 * tests that only numbers and letters of the alphabet are allowed 039 */ 040 @Test public final void testMatch_allowDefault() { 041 boolean[] expected = { true, // "" 042 false, // "!!!" 043 false, // "[a-9]" 044 false, // "^A-Z" 045 true, // "abc" 046 false, // "a bc" 047 false, // "a_bc" 048 true, // "123" 049 false, // "12 3" 050 false, // "12_3" 051 true, // "a1b2c3" 052 false, // "a1b2_c3" 053 false, // "a 1b2c3" 054 false, // "a 1b2_c3" 055 false, //"foo.bar" 056 false, //"foo.bar_baz" 057 false, //".bar_foo baz" 058 }; 059 060 ValidationTestUtils.assertPatternMatches(pattern, expected); 061 } 062 063 /** 064 * tests that underscores, numbers and letters of the alphabet are allowed 065 */ 066 @Test public final void testMatch_allowUnderscore() { 067 boolean[] expected = { true, // "" 068 false, // "!!!" 069 false, // "[a-9]" 070 false, // "^A-Z" 071 true, // "abc" 072 false, // "a bc" 073 true, // "a_bc" 074 true, // "123" 075 false, // "12 3" 076 true, // "12_3" 077 true, // "a1b2c3" 078 true, // "a1b2_c3" 079 false, // "a 1b2c3" 080 false, // "a 1b2_c3" 081 false, //"foo.bar" 082 false, //"foo.bar_baz" 083 false, //".bar_foo baz" 084 }; 085 086 pattern.setAllowUnderscore(true); 087 ValidationTestUtils.assertPatternMatches(pattern, expected); 088 } 089 090 /** 091 * tests that white space, numbers and letters of the alphabet are allowed 092 */ 093 @Test public final void testMatch_allowWhitespace() { 094 boolean[] expected = { true, // "" 095 false, // "!!!" 096 false, // "[a-9]" 097 false, // "^A-Z" 098 true, // "abc" 099 true, // "a bc" 100 false, // "a_bc" 101 true, // "123" 102 true, // "12 3" 103 false, // "12_3" 104 true, // "a1b2c3" 105 false, // "a1b2_c3" 106 true, // "a 1b2c3" 107 false, // "a 1b2_c3" 108 false, //"foo.bar" 109 false, //"foo.bar_baz" 110 false, //".bar_foo baz" 111 }; 112 113 pattern.setAllowWhitespace(true); 114 ValidationTestUtils.assertPatternMatches(pattern, expected); 115 } 116 117 /** 118 * tests that white space, underscores, numbers and letters of the alphabet are allowed 119 */ 120 @Test public final void testMatch_allowUnderScoreAndWhiteSpace() { 121 boolean[] expected = { true, // "" 122 false, // "!!!" 123 false, // "[a-9]" 124 false, // "^A-Z" 125 true, // "abc" 126 true, // "a bc" 127 true, // "a_bc" 128 true, // "123" 129 true, // "12 3" 130 true, // "12_3" 131 true, // "a1b2c3" 132 true, // "a1b2_c3" 133 true, // "a 1b2c3" 134 true, // "a 1b2_c3" 135 false, //"foo.bar" 136 false, //"foo.bar_baz" 137 false, //".bar_foo baz" 138 }; 139 140 pattern.setAllowUnderscore(true); 141 pattern.setAllowWhitespace(true); 142 143 ValidationTestUtils.assertPatternMatches(pattern, expected); 144 } 145 146 /** 147 * tests that periods, numbers and letters of the alphabet are allowed 148 */ 149 @Test public final void testMatch_allowPeriod() { 150 boolean[] expected = { true, // "" 151 false, // "!!!" 152 false, // "[a-9]" 153 false, // "^A-Z" 154 true, // "abc" 155 false, // "a bc" 156 false, // "a_bc" 157 true, // "123" 158 false, // "12 3" 159 false, // "12_3" 160 true, // "a1b2c3" 161 false, // "a1b2_c3" 162 false, // "a 1b2c3" 163 false, // "a 1b2_c3" 164 true, //"foo.bar" 165 false, //"foo.bar_baz" 166 false, //".bar_foo baz" 167 }; 168 169 pattern.setAllowPeriod(true); 170 171 ValidationTestUtils.assertPatternMatches(pattern, expected); 172 } 173 174 /** 175 * tests that periods, underscores, numbers and letters of the alphabet are allowed 176 */ 177 @Test public final void testMatch_allowPeriodAndUnderscore() { 178 boolean[] expected = { true, // "" 179 false, // "!!!" 180 false, // "[a-9]" 181 false, // "^A-Z" 182 true, // "abc" 183 false, // "a bc" 184 true, // "a_bc" 185 true, // "123" 186 false, // "12 3" 187 true, // "12_3" 188 true, // "a1b2c3" 189 true, // "a1b2_c3" 190 false, // "a 1b2c3" 191 false, // "a 1b2_c3" 192 true, //"foo.bar" 193 true, //"foo.bar_baz" 194 false, //".bar_foo baz" 195 }; 196 197 pattern.setAllowPeriod(true); 198 pattern.setAllowUnderscore(true); 199 200 ValidationTestUtils.assertPatternMatches(pattern, expected); 201 } 202 203 /** 204 * tests that periods, underscores, white space, numbers and letters of the alphabet are allowed 205 */ 206 @Test public final void testMatch_allowPeriodAndUnderscoreAndSpace() { 207 boolean[] expected = { true, // "" 208 false, // "!!!" 209 false, // "[a-9]" 210 false, // "^A-Z" 211 true, // "abc" 212 true, // "a bc" 213 true, // "a_bc" 214 true, // "123" 215 true, // "12 3" 216 true, // "12_3" 217 true, // "a1b2c3" 218 true, // "a1b2_c3" 219 true, // "a 1b2c3" 220 true, // "a 1b2_c3" 221 true, //"foo.bar" 222 true, //"foo.bar_baz" 223 true, //".bar_foo baz" 224 }; 225 226 pattern.setAllowPeriod(true); 227 pattern.setAllowUnderscore(true); 228 pattern.setAllowWhitespace(true); 229 230 ValidationTestUtils.assertPatternMatches(pattern, expected); 231 } 232 }