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.fieldlevel;
017
018 import org.junit.Before;
019 import org.junit.Test;
020 import org.kuali.rice.kns.datadictionary.validation.fieldlevel.FixedPointValidationPattern;
021 import org.kuali.rice.krad.datadictionary.validation.ValidationPattern;
022 import org.kuali.rice.test.BaseRiceTestCase;
023
024 import static org.junit.Assert.assertFalse;
025 import static org.junit.Assert.assertTrue;
026
027 public class FixedPointValidationPatternTest extends BaseRiceTestCase {
028 // Unlike its superclass, FixedPointValidationPattern does not use Spring.
029 FixedPointValidationPattern pattern;
030
031 @Before
032 public final void setUp() throws Exception {
033
034 pattern = new FixedPointValidationPattern();
035 pattern.setPrecision(2);
036 pattern.setScale(1);
037 }
038
039
040 @Test public final void testDefaultAllows_empty() {
041 assertFalse(pattern.matches(""));
042 }
043
044 @Test public final void testDefaultAllows_positive1() {
045 assertTrue(pattern.matches(".1"));
046 }
047
048 @Test public final void testDefaultAllows_positive2() {
049 assertTrue(pattern.matches("0.1"));
050 }
051
052 @Test public final void testDefaultAllows_positive3() {
053 assertTrue(pattern.matches("1.1"));
054 }
055
056 @Test public final void testDefaultAllows_positive4() {
057 assertTrue(pattern.matches("1"));
058 }
059
060 @Test public final void testDefaultAllows_positive5() {
061 assertTrue(pattern.matches("1.0"));
062 }
063
064
065 @Test public final void testDefaultAllows_negative1() {
066 assertFalse(pattern.matches("-.1"));
067 }
068
069 @Test public final void testDefaultAllows_negative2() {
070 assertFalse(pattern.matches("-0.1"));
071 }
072
073 @Test public final void testDefaultAllows_negative3() {
074 assertFalse(pattern.matches("-1.1"));
075 }
076
077 @Test public final void testDefaultAllows_negative4() {
078 assertFalse(pattern.matches("-1"));
079 }
080
081 @Test public final void testDefaultAllows_negative5() {
082 assertFalse(pattern.matches("-1.0"));
083 }
084
085
086 @Test public final void testDefaultAllows_invalid1() {
087 assertFalse(pattern.matches("-."));
088 }
089
090 @Test public final void testDefaultAllows_invalid2() {
091 assertFalse(pattern.matches("1."));
092 }
093
094 @Test public final void testDefaultAllows_invalid3() {
095 assertFalse(pattern.matches("-1."));
096 }
097
098 @Test public final void testDefaultAllows_invalid4() {
099 assertFalse(pattern.matches("12."));
100 }
101
102 @Test public final void testDefaultAllows_invalid5() {
103 assertFalse(pattern.matches("1245678901234567890123.23"));
104 }
105
106 @Test public final void testDefaultAllows_invalid6() {
107 assertFalse(pattern.matches("123"));
108 }
109
110 @Test public final void testAllowNegative_positive1() {
111 assertTrue(pattern.matches(".1"));
112 }
113
114 @Test public final void testAllowNegative_positive2() {
115 pattern.setAllowNegative(true);
116
117 assertTrue(pattern.matches("0.1"));
118 }
119
120 @Test public final void testAllowNegative_positive3() {
121 pattern.setAllowNegative(true);
122
123 assertTrue(pattern.matches("1.1"));
124 }
125
126 @Test public final void testAllowNegative_positive4() {
127 pattern.setAllowNegative(true);
128
129 assertTrue(pattern.matches("1"));
130 }
131
132 @Test public final void testAllowNegative_positive5() {
133 pattern.setAllowNegative(true);
134
135 assertTrue(pattern.matches("1.0"));
136 }
137
138
139 @Test public final void testAllowNegative_negative1() {
140 pattern.setAllowNegative(true);
141
142 assertTrue(pattern.matches("-.1"));
143 }
144
145 @Test public final void testAllowNegative_negative2() {
146 pattern.setAllowNegative(true);
147
148 assertTrue(pattern.matches("-0.1"));
149 }
150
151 @Test public final void testAllowNegative_negative3() {
152 pattern.setAllowNegative(true);
153
154 assertTrue(pattern.matches("-1.1"));
155 }
156
157 @Test public final void testAllowNegative_negative4() {
158 pattern.setAllowNegative(true);
159
160 assertTrue(pattern.matches("-1"));
161 }
162
163 @Test public final void testAllowNegative_negative5() {
164 pattern.setAllowNegative(true);
165
166 assertTrue(pattern.matches("-1.0"));
167 }
168
169
170 @Test public final void testAllowNegative_invalid1() {
171 pattern.setAllowNegative(true);
172
173 assertFalse(pattern.matches("-."));
174 }
175
176 @Test public final void testAllowNegative_invalid2() {
177 pattern.setAllowNegative(true);
178
179 assertFalse(pattern.matches("1."));
180 }
181
182 @Test public final void testAllowNegative_invalid3() {
183 pattern.setAllowNegative(true);
184
185 assertFalse(pattern.matches("-1."));
186 }
187
188 @Test public final void testAllowNegative_invalid4() {
189 pattern.setAllowNegative(true);
190
191 assertFalse(pattern.matches("-12."));
192 }
193
194 @Test public final void testAllowNegative_invalid5() {
195 pattern.setAllowNegative(true);
196
197 assertFalse(pattern.matches("-1.23"));
198 }
199
200 @Test public final void testAllowNegative_invalid6() {
201 pattern.setAllowNegative(true);
202
203 assertFalse(pattern.matches("123."));
204 }
205
206 @Test public final void testAllowNegative_invalid7() {
207 pattern.setAllowNegative(true);
208
209 assertFalse(pattern.matches(".123"));
210 }
211
212 @Test(expected=ValidationPattern.ValidationPatternException.class)
213 public final void testZero_Percision_And_Scale_invalid8() {
214 //what happens when precision & scale are not set in DD
215 pattern.setPrecision(0);
216 pattern.setScale(0);
217 pattern.completeValidation();
218 }
219
220 @Test(expected=ValidationPattern.ValidationPatternException.class)
221 public final void testPrecision_Less_Than_Scale_invalid9() {
222 pattern.setPrecision(1);
223 pattern.setScale(3);
224 pattern.completeValidation();
225 }
226
227 @Test(expected=ValidationPattern.ValidationPatternException.class)
228 public final void testPrecision_And_Scale_Negative_invalid10() {
229 pattern.setPrecision(-3);
230 pattern.setScale(-1);
231 pattern.completeValidation();
232 }
233
234 }