2 // Tests for System.Web.UI.WebControls.BaseCompareValidator
5 // Chris Toshok (toshok@novell.com)
9 // Copyright (C) 2005 Novell, Inc (http://www.novell.com)
11 // Permission is hereby granted, free of charge, to any person obtaining
12 // a copy of this software and associated documentation files (the
13 // "Software"), to deal in the Software without restriction, including
14 // without limitation the rights to use, copy, modify, merge, publish,
15 // distribute, sublicense, and/or sell copies of the Software, and to
16 // permit persons to whom the Software is furnished to do so, subject to
17 // the following conditions:
19 // The above copyright notice and this permission notice shall be
20 // included in all copies or substantial portions of the Software.
22 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
23 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
25 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
26 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
27 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
28 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
31 using NUnit.Framework;
34 using System.Globalization;
35 using System.Threading;
38 using System.Web.UI.WebControls;
40 namespace MonoTests.System.Web.UI.WebControls
42 class BaseCompareValidatorPoker : BaseCompareValidator {
43 public BaseCompareValidatorPoker ()
48 public object SaveState ()
50 return SaveViewState ();
53 public void LoadState (object o)
58 public void CheckControlProperties ()
60 ControlPropertiesValid ();
63 protected override bool EvaluateIsValid ()
68 public new bool Compare(string leftText,
70 ValidationCompareOperator op,
71 ValidationDataType type)
73 return BaseCompareValidator.Compare (leftText,
78 public new bool Convert (string text,
79 ValidationDataType type,
82 return BaseCompareValidator.Convert (text, type, out value);
85 public new bool CanConvert(string text,
86 ValidationDataType type)
88 return BaseCompareValidator.CanConvert (text, type);
91 public new string GetDateElementOrder ()
93 return BaseCompareValidator.GetDateElementOrder();
96 public new int GetFullYear (int two_digit_year)
98 return BaseCompareValidator.GetFullYear (two_digit_year);
101 public int GetCutoffYear ()
103 return BaseCompareValidator.CutoffYear;
108 public class BaseCompareValidatorTest : ValidatorTest {
111 public void ViewState ()
113 BaseCompareValidatorPoker p = new BaseCompareValidatorPoker ();
115 p.Type = ValidationDataType.String;
116 Assert.AreEqual (p.Type, ValidationDataType.String, "A1");
120 public void CanConvert ()
122 BaseCompareValidatorPoker p = new BaseCompareValidatorPoker ();
124 /* an integer constant */
125 Assert.IsTrue (p.CanConvert ("10", ValidationDataType.String), "B1");
126 Assert.IsTrue (p.CanConvert ("10", ValidationDataType.Integer), "B2");
127 Assert.IsTrue (p.CanConvert ("10", ValidationDataType.Double), "B3");
128 Assert.IsFalse (p.CanConvert ("10", ValidationDataType.Date), "B4");
129 Assert.IsTrue (p.CanConvert ("10", ValidationDataType.Currency), "B5");
131 /* a double constant */
132 Assert.IsTrue (p.CanConvert ("10.5", ValidationDataType.String), "B6");
133 Assert.IsFalse (p.CanConvert ("10.5", ValidationDataType.Integer), "B7");
134 Assert.IsTrue (p.CanConvert ("10.5", ValidationDataType.Double), "B8");
135 // find a way to do this in a Culture independent way
136 // Assert.IsFalse (p.CanConvert ("10.5", ValidationDataType.Date), "B9");
137 Assert.IsTrue (p.CanConvert ("10.5", ValidationDataType.Currency), "B10");
139 /* a string constant */
140 Assert.IsTrue (p.CanConvert ("hi", ValidationDataType.String), "B11");
141 Assert.IsFalse (p.CanConvert ("hi", ValidationDataType.Integer), "B12");
142 Assert.IsFalse (p.CanConvert ("hi", ValidationDataType.Double), "B13");
143 Assert.IsFalse (p.CanConvert ("hi", ValidationDataType.Date), "B14");
144 Assert.IsFalse (p.CanConvert ("hi", ValidationDataType.Currency), "B15");
146 /* a currency constant? */
147 Assert.IsTrue (p.CanConvert ("10.50", ValidationDataType.String), "B16");
148 Assert.IsFalse (p.CanConvert ("10.50", ValidationDataType.Integer), "B17");
149 Assert.IsTrue (p.CanConvert ("10.50", ValidationDataType.Double), "B18");
150 Assert.IsFalse (p.CanConvert ("10.50", ValidationDataType.Date), "B19");
151 Assert.IsTrue (p.CanConvert ("10.50", ValidationDataType.Currency), "B20");
153 /* a date constant */
154 DateTime dt = new DateTime (2005, 7, 19);
155 string dt_str = dt.ToString("d");
156 Assert.IsTrue (p.CanConvert (dt_str, ValidationDataType.String), "B21");
157 Assert.IsFalse (p.CanConvert (dt_str, ValidationDataType.Integer), "B22");
158 Assert.IsFalse (p.CanConvert (dt_str, ValidationDataType.Double), "B23");
159 Assert.IsTrue (p.CanConvert (dt_str, ValidationDataType.Date), "B24");
160 Assert.IsFalse (p.CanConvert (dt_str, ValidationDataType.Currency), "B25");
163 Assert.IsFalse (p.CanConvert (null, ValidationDataType.String), "B26");
164 Assert.IsFalse (p.CanConvert (null, ValidationDataType.Integer), "B27");
165 Assert.IsFalse (p.CanConvert (null, ValidationDataType.Double), "B28");
166 Assert.IsFalse (p.CanConvert (null, ValidationDataType.Date), "B29");
167 Assert.IsFalse (p.CanConvert (null, ValidationDataType.Currency), "B30");
171 public void Convert ()
173 BaseCompareValidatorPoker p = new BaseCompareValidatorPoker ();
176 /* an integer constant */
177 Assert.IsTrue (p.Convert ("10", ValidationDataType.String, out result), "C1");
178 Assert.AreEqual ("10", result, "C2");
179 Assert.IsTrue (p.Convert ("10", ValidationDataType.Integer, out result), "C3");
180 Assert.AreEqual (10, result, "C4");
181 Assert.IsTrue (p.Convert ("10", ValidationDataType.Double, out result), "C5");
182 Assert.AreEqual (10.0d, result, "C6");
183 Assert.IsFalse (p.Convert ("10", ValidationDataType.Date, out result), "C7");
184 Assert.IsNull (result, "C8");
185 Assert.IsTrue (p.Convert ("10", ValidationDataType.Currency, out result), "C9");
186 Assert.AreEqual (new Decimal (10.0f), result, "C10");
188 /* a double constant */
189 Assert.IsTrue (p.Convert ("10.5", ValidationDataType.String, out result), "C11");
190 Assert.AreEqual ("10.5", result, "C12");
191 Assert.IsFalse (p.Convert ("10.5", ValidationDataType.Integer, out result), "C13");
192 Assert.IsNull (result, "C14");
193 Assert.IsTrue (p.Convert ("10.5", ValidationDataType.Double, out result), "C15");
194 Assert.AreEqual (10.5d, result, "C16");
195 // find a way to do this in a Culture independent way
196 // Assert.IsFalse (p.Convert ("10.5", ValidationDataType.Date, out result), "C17");
197 // Assert.IsNull (result, "C18");
198 Assert.IsTrue (p.Convert ("10.5", ValidationDataType.Currency, out result), "C19");
199 Assert.AreEqual (new Decimal (10.5f), result, "C20");
201 /* a string constant */
202 Assert.IsTrue (p.Convert ("hi", ValidationDataType.String, out result), "C21");
203 Assert.AreEqual ("hi", result, "C22");
204 Assert.IsFalse (p.Convert ("hi", ValidationDataType.Integer, out result), "C23");
205 Assert.IsNull (result, "C24");
206 Assert.IsFalse (p.Convert ("hi", ValidationDataType.Double, out result), "C25");
207 Assert.IsNull (result, "C26");
208 Assert.IsFalse (p.Convert ("hi", ValidationDataType.Date, out result), "C27");
209 Assert.IsNull (result, "C28");
210 Assert.IsFalse (p.Convert ("hi", ValidationDataType.Currency, out result), "C29");
211 Assert.IsNull (result, "C30");
213 /* a date constant */
214 DateTime dt = new DateTime (2005, 7, 19);
215 string dt_str = dt.ToString("d");
216 Assert.IsTrue (p.Convert (dt_str, ValidationDataType.String, out result), "C31");
217 Assert.AreEqual (dt_str, result, "C32");
218 Assert.IsFalse (p.Convert (dt_str, ValidationDataType.Integer, out result), "C33");
219 Assert.IsNull (result, "C34");
220 Assert.IsFalse (p.Convert (dt_str, ValidationDataType.Double, out result), "C35");
221 Assert.IsNull (result, "C36");
222 Assert.IsTrue (p.Convert (dt_str, ValidationDataType.Date, out result), "C37");
223 Assert.AreEqual (DateTime.Parse (dt_str), result, "C38");
224 Assert.IsFalse (p.Convert (dt_str, ValidationDataType.Currency, out result), "C39");
225 Assert.IsNull (result, "C40");
227 /* a currency constant? */
228 Assert.IsTrue (p.Convert ("10.50", ValidationDataType.String, out result), "C41");
229 Assert.AreEqual ("10.50", result, "C42");
230 Assert.IsFalse (p.Convert ("10.50", ValidationDataType.Integer, out result), "C43");
231 Assert.IsNull (result, "C44");
232 Assert.IsTrue (p.Convert ("10.50", ValidationDataType.Double, out result), "C45");
233 Assert.AreEqual (10.50d, result, "C46");
234 Assert.IsFalse (p.Convert ("10.50", ValidationDataType.Date, out result), "C47");
235 Assert.IsNull (result, "C48");
236 Assert.IsTrue (p.Convert ("10.50", ValidationDataType.Currency, out result), "C49");
237 Assert.AreEqual (Decimal.Parse ("10.50"), result, "C50");
241 public void Compare ()
243 BaseCompareValidatorPoker p = new BaseCompareValidatorPoker ();
245 /* integer comparisons */
247 Assert.IsTrue (p.Compare ("10", "10", ValidationCompareOperator.Equal, ValidationDataType.Integer), "D1");
248 Assert.IsFalse (p.Compare ("10", "10", ValidationCompareOperator.NotEqual, ValidationDataType.Integer), "D2");
249 Assert.IsFalse (p.Compare ("10", "10", ValidationCompareOperator.LessThan, ValidationDataType.Integer), "D3");
250 Assert.IsTrue (p.Compare ("10", "10", ValidationCompareOperator.LessThanEqual, ValidationDataType.Integer), "D4");
251 Assert.IsFalse (p.Compare ("10", "10", ValidationCompareOperator.GreaterThan, ValidationDataType.Integer), "D5");
252 Assert.IsTrue (p.Compare ("10", "10", ValidationCompareOperator.GreaterThanEqual, ValidationDataType.Integer), "D6");
254 Assert.IsFalse (p.Compare ( "5", "10", ValidationCompareOperator.Equal, ValidationDataType.Integer), "D7");
255 Assert.IsTrue (p.Compare ( "5", "10", ValidationCompareOperator.NotEqual, ValidationDataType.Integer), "D8");
256 Assert.IsTrue (p.Compare ( "5", "10", ValidationCompareOperator.LessThan, ValidationDataType.Integer), "D9");
257 Assert.IsTrue (p.Compare ( "5", "10", ValidationCompareOperator.LessThanEqual, ValidationDataType.Integer), "D10");
258 Assert.IsFalse (p.Compare ( "5", "10", ValidationCompareOperator.GreaterThan, ValidationDataType.Integer), "D11");
259 Assert.IsFalse (p.Compare ( "5", "10", ValidationCompareOperator.GreaterThanEqual, ValidationDataType.Integer), "D12");
261 Assert.IsFalse (p.Compare ("10", "5", ValidationCompareOperator.Equal, ValidationDataType.Integer), "D13");
262 Assert.IsTrue (p.Compare ("10", "5", ValidationCompareOperator.NotEqual, ValidationDataType.Integer), "D14");
263 Assert.IsFalse (p.Compare ("10", "5", ValidationCompareOperator.LessThan, ValidationDataType.Integer), "D15");
264 Assert.IsFalse (p.Compare ("10", "5", ValidationCompareOperator.LessThanEqual, ValidationDataType.Integer), "D16");
265 Assert.IsTrue (p.Compare ("10", "5", ValidationCompareOperator.GreaterThan, ValidationDataType.Integer), "D17");
266 Assert.IsTrue (p.Compare ("10", "5", ValidationCompareOperator.GreaterThanEqual, ValidationDataType.Integer), "D18");
267 /* error conditions */
268 Assert.IsFalse (p.Compare ("hi", "5", ValidationCompareOperator.Equal, ValidationDataType.Integer), "D13");
269 Assert.IsFalse (p.Compare ("hi", "5", ValidationCompareOperator.NotEqual, ValidationDataType.Integer), "D14");
270 Assert.IsFalse (p.Compare ("hi", "5", ValidationCompareOperator.LessThan, ValidationDataType.Integer), "D15");
271 Assert.IsFalse (p.Compare ("hi", "5", ValidationCompareOperator.LessThanEqual, ValidationDataType.Integer), "D16");
272 Assert.IsFalse (p.Compare ("hi", "5", ValidationCompareOperator.GreaterThan, ValidationDataType.Integer), "D17");
273 Assert.IsFalse (p.Compare ("hi", "5", ValidationCompareOperator.GreaterThanEqual, ValidationDataType.Integer), "D18");
274 Assert.IsFalse (p.Compare (null, "5", ValidationCompareOperator.Equal, ValidationDataType.Integer), "D19");
276 Assert.IsTrue (p.Compare ( "5", "hi", ValidationCompareOperator.Equal, ValidationDataType.Integer), "D20");
277 Assert.IsTrue (p.Compare ( "5", "hi", ValidationCompareOperator.NotEqual, ValidationDataType.Integer), "D21");
278 Assert.IsTrue (p.Compare ( "5", "hi", ValidationCompareOperator.LessThan, ValidationDataType.Integer), "D22");
279 Assert.IsTrue (p.Compare ( "5", "hi", ValidationCompareOperator.LessThanEqual, ValidationDataType.Integer), "D23");
280 Assert.IsTrue (p.Compare ( "5", "hi", ValidationCompareOperator.GreaterThan, ValidationDataType.Integer), "D24");
281 Assert.IsTrue (p.Compare ( "5", "hi", ValidationCompareOperator.GreaterThanEqual, ValidationDataType.Integer), "D25");
282 Assert.IsTrue (p.Compare ( "5", null, ValidationCompareOperator.Equal, ValidationDataType.Integer), "D26");
283 Assert.IsFalse (p.Compare ( "hi", "hi", ValidationCompareOperator.Equal, ValidationDataType.Integer), "D111");
284 Assert.IsFalse (p.Compare ( null, null, ValidationCompareOperator.Equal, ValidationDataType.Integer), "D112");
286 /* double comparisons */
288 Assert.IsTrue (p.Compare ("10.5", "10.5", ValidationCompareOperator.Equal, ValidationDataType.Double), "D27");
289 Assert.IsFalse (p.Compare ("10.5", "10.5", ValidationCompareOperator.NotEqual, ValidationDataType.Double), "D28");
290 Assert.IsFalse (p.Compare ("10.5", "10.5", ValidationCompareOperator.LessThan, ValidationDataType.Double), "D29");
291 Assert.IsTrue (p.Compare ("10.5", "10.5", ValidationCompareOperator.LessThanEqual, ValidationDataType.Double), "D30");
292 Assert.IsFalse (p.Compare ("10.5", "10.5", ValidationCompareOperator.GreaterThan, ValidationDataType.Double), "D31");
293 Assert.IsTrue (p.Compare ("10.5", "10.5", ValidationCompareOperator.GreaterThanEqual, ValidationDataType.Double), "D32");
295 Assert.IsFalse (p.Compare ( "5.5", "10.5", ValidationCompareOperator.Equal, ValidationDataType.Double), "D33");
296 Assert.IsTrue (p.Compare ( "5.5", "10.5", ValidationCompareOperator.NotEqual, ValidationDataType.Double), "D34");
297 Assert.IsTrue (p.Compare ( "5.5", "10.5", ValidationCompareOperator.LessThan, ValidationDataType.Double), "D35");
298 Assert.IsTrue (p.Compare ( "5.5", "10.5", ValidationCompareOperator.LessThanEqual, ValidationDataType.Double), "D36");
299 Assert.IsFalse (p.Compare ( "5.5", "10.5", ValidationCompareOperator.GreaterThan, ValidationDataType.Double), "D37");
300 Assert.IsFalse (p.Compare ( "5.5", "10.5", ValidationCompareOperator.GreaterThanEqual, ValidationDataType.Double), "D38");
302 Assert.IsFalse (p.Compare ("10.5", "5.5", ValidationCompareOperator.Equal, ValidationDataType.Double), "D39");
303 Assert.IsTrue (p.Compare ("10.5", "5.5", ValidationCompareOperator.NotEqual, ValidationDataType.Double), "D40");
304 Assert.IsFalse (p.Compare ("10.5", "5.5", ValidationCompareOperator.LessThan, ValidationDataType.Double), "D41");
305 Assert.IsFalse (p.Compare ("10.5", "5.5", ValidationCompareOperator.LessThanEqual, ValidationDataType.Double), "D42");
306 Assert.IsTrue (p.Compare ("10.5", "5.5", ValidationCompareOperator.GreaterThan, ValidationDataType.Double), "D43");
307 Assert.IsTrue (p.Compare ("10.5", "5.5", ValidationCompareOperator.GreaterThanEqual, ValidationDataType.Double), "D44");
308 /* error conditions */
309 Assert.IsFalse (p.Compare ("hi", "5.5", ValidationCompareOperator.Equal, ValidationDataType.Double), "D45");
310 Assert.IsFalse (p.Compare ("hi", "5.5", ValidationCompareOperator.NotEqual, ValidationDataType.Double), "D46");
311 Assert.IsFalse (p.Compare ("hi", "5.5", ValidationCompareOperator.LessThan, ValidationDataType.Double), "D47");
312 Assert.IsFalse (p.Compare ("hi", "5.5", ValidationCompareOperator.LessThanEqual, ValidationDataType.Double), "D48");
313 Assert.IsFalse (p.Compare ("hi", "5.5", ValidationCompareOperator.GreaterThan, ValidationDataType.Double), "D49");
314 Assert.IsFalse (p.Compare ("hi", "5.5", ValidationCompareOperator.GreaterThanEqual, ValidationDataType.Double), "D50");
315 Assert.IsFalse (p.Compare (null, "5.5", ValidationCompareOperator.Equal, ValidationDataType.Double), "D51");
317 Assert.IsTrue (p.Compare ( "5.5", "hi", ValidationCompareOperator.Equal, ValidationDataType.Double), "D52");
318 Assert.IsTrue (p.Compare ( "5.5", "hi", ValidationCompareOperator.NotEqual, ValidationDataType.Double), "D53");
319 Assert.IsTrue (p.Compare ( "5.5", "hi", ValidationCompareOperator.LessThan, ValidationDataType.Double), "D54");
320 Assert.IsTrue (p.Compare ( "5.5", "hi", ValidationCompareOperator.LessThanEqual, ValidationDataType.Double), "D55");
321 Assert.IsTrue (p.Compare ( "5.5", "hi", ValidationCompareOperator.GreaterThan, ValidationDataType.Double), "D56");
322 Assert.IsTrue (p.Compare ( "5.5", "hi", ValidationCompareOperator.GreaterThanEqual, ValidationDataType.Double), "D57");
323 Assert.IsTrue (p.Compare ( "5.5", null, ValidationCompareOperator.Equal, ValidationDataType.Double), "D58");
324 Assert.IsFalse (p.Compare ( "hi", "hi", ValidationCompareOperator.Equal, ValidationDataType.Double), "D26");
325 Assert.IsFalse (p.Compare ( null, null, ValidationCompareOperator.Equal, ValidationDataType.Double), "D26");
327 /* string comparisons */
329 Assert.IsTrue (p.Compare ("hi", "hi", ValidationCompareOperator.Equal, ValidationDataType.String), "D59");
330 Assert.IsFalse (p.Compare ("hi", "hi", ValidationCompareOperator.NotEqual, ValidationDataType.String), "D60");
331 Assert.IsFalse (p.Compare ("hi", "hi", ValidationCompareOperator.LessThan, ValidationDataType.String), "D61");
332 Assert.IsTrue (p.Compare ("hi", "hi", ValidationCompareOperator.LessThanEqual, ValidationDataType.String), "D62");
333 Assert.IsFalse (p.Compare ("hi", "hi", ValidationCompareOperator.GreaterThan, ValidationDataType.String), "D63");
334 Assert.IsTrue (p.Compare ("hi", "hi", ValidationCompareOperator.GreaterThanEqual, ValidationDataType.String), "D64");
336 Assert.IsFalse (p.Compare ( "bye", "hi", ValidationCompareOperator.Equal, ValidationDataType.String), "D65");
337 Assert.IsTrue (p.Compare ( "bye", "hi", ValidationCompareOperator.NotEqual, ValidationDataType.String), "D66");
338 Assert.IsTrue (p.Compare ( "bye", "hi", ValidationCompareOperator.LessThan, ValidationDataType.String), "D67");
339 Assert.IsTrue (p.Compare ( "bye", "hi", ValidationCompareOperator.LessThanEqual, ValidationDataType.String), "D68");
340 Assert.IsFalse (p.Compare ( "bye", "hi", ValidationCompareOperator.GreaterThan, ValidationDataType.String), "D69");
341 Assert.IsFalse (p.Compare ( "bye", "hi", ValidationCompareOperator.GreaterThanEqual, ValidationDataType.String), "D70");
343 Assert.IsFalse (p.Compare ("hi", "bye", ValidationCompareOperator.Equal, ValidationDataType.String), "D71");
344 Assert.IsTrue (p.Compare ("hi", "bye", ValidationCompareOperator.NotEqual, ValidationDataType.String), "D72");
345 Assert.IsFalse (p.Compare ("hi", "bye", ValidationCompareOperator.LessThan, ValidationDataType.String), "D73");
346 Assert.IsFalse (p.Compare ("hi", "bye", ValidationCompareOperator.LessThanEqual, ValidationDataType.String), "D74");
347 Assert.IsTrue (p.Compare ("hi", "bye", ValidationCompareOperator.GreaterThan, ValidationDataType.String), "D75");
348 Assert.IsTrue (p.Compare ("hi", "bye", ValidationCompareOperator.GreaterThanEqual, ValidationDataType.String), "D76");
350 /* error conditions */
351 Assert.IsFalse (p.Compare (null, "hi", ValidationCompareOperator.Equal, ValidationDataType.String), "D113");
352 Assert.IsTrue (p.Compare ("hi", null, ValidationCompareOperator.Equal, ValidationDataType.String), "D114");
353 Assert.IsFalse (p.Compare ( null, null, ValidationCompareOperator.Equal, ValidationDataType.String), "D115");
356 /* date comparisons */
358 DateTime dt1 = new DateTime (2005, 7, 18);
359 DateTime dt2 = new DateTime (2005, 7, 19);
360 string dt1_str = dt1.ToString("d");
361 string dt2_str = dt2.ToString("d");
363 Assert.IsTrue (p.Compare (dt2_str, dt2_str, ValidationCompareOperator.Equal, ValidationDataType.Date), "D59");
364 Assert.IsFalse (p.Compare (dt2_str, dt2_str, ValidationCompareOperator.NotEqual, ValidationDataType.Date), "D60");
365 Assert.IsFalse (p.Compare (dt2_str, dt2_str, ValidationCompareOperator.LessThan, ValidationDataType.Date), "D61");
366 Assert.IsTrue (p.Compare (dt2_str, dt2_str, ValidationCompareOperator.LessThanEqual, ValidationDataType.Date), "D62");
367 Assert.IsFalse (p.Compare (dt2_str, dt2_str, ValidationCompareOperator.GreaterThan, ValidationDataType.Date), "D63");
368 Assert.IsTrue (p.Compare (dt2_str, dt2_str, ValidationCompareOperator.GreaterThanEqual, ValidationDataType.Date), "D64");
370 Assert.IsFalse (p.Compare ( dt1_str, dt2_str, ValidationCompareOperator.Equal, ValidationDataType.Date), "D65");
371 Assert.IsTrue (p.Compare ( dt1_str, dt2_str, ValidationCompareOperator.NotEqual, ValidationDataType.Date), "D66");
372 Assert.IsTrue (p.Compare ( dt1_str, dt2_str, ValidationCompareOperator.LessThan, ValidationDataType.Date), "D67");
373 Assert.IsTrue (p.Compare ( dt1_str, dt2_str, ValidationCompareOperator.LessThanEqual, ValidationDataType.Date), "D68");
374 Assert.IsFalse (p.Compare ( dt1_str, dt2_str, ValidationCompareOperator.GreaterThan, ValidationDataType.Date), "D69");
375 Assert.IsFalse (p.Compare ( dt1_str, dt2_str, ValidationCompareOperator.GreaterThanEqual, ValidationDataType.Date), "D70");
377 Assert.IsFalse (p.Compare (dt2_str, dt1_str, ValidationCompareOperator.Equal, ValidationDataType.Date), "D71");
378 Assert.IsTrue (p.Compare (dt2_str, dt1_str, ValidationCompareOperator.NotEqual, ValidationDataType.Date), "D72");
379 Assert.IsFalse (p.Compare (dt2_str, dt1_str, ValidationCompareOperator.LessThan, ValidationDataType.Date), "D73");
380 Assert.IsFalse (p.Compare (dt2_str, dt1_str, ValidationCompareOperator.LessThanEqual, ValidationDataType.Date), "D74");
381 Assert.IsTrue (p.Compare (dt2_str, dt1_str, ValidationCompareOperator.GreaterThan, ValidationDataType.Date), "D75");
382 Assert.IsTrue (p.Compare (dt2_str, dt1_str, ValidationCompareOperator.GreaterThanEqual, ValidationDataType.Date), "D76");
384 /* error conditions */
385 Assert.IsFalse (p.Compare (null, dt2_str, ValidationCompareOperator.Equal, ValidationDataType.Date), "D77");
386 Assert.IsTrue (p.Compare (dt2_str, null, ValidationCompareOperator.Equal, ValidationDataType.Date), "D78");
387 Assert.IsFalse (p.Compare ("hi", null, ValidationCompareOperator.Equal, ValidationDataType.Date), "D116");
388 Assert.IsFalse (p.Compare ( null, null, ValidationCompareOperator.Equal, ValidationDataType.Date), "D117");
390 /* currency comparisons */
392 Assert.IsTrue (p.Compare ("10.50", "10.50", ValidationCompareOperator.Equal, ValidationDataType.Currency), "D79");
393 Assert.IsFalse (p.Compare ("10.50", "10.50", ValidationCompareOperator.NotEqual, ValidationDataType.Currency), "D80");
394 Assert.IsFalse (p.Compare ("10.50", "10.50", ValidationCompareOperator.LessThan, ValidationDataType.Currency), "D81");
395 Assert.IsTrue (p.Compare ("10.50", "10.50", ValidationCompareOperator.LessThanEqual, ValidationDataType.Currency), "D82");
396 Assert.IsFalse (p.Compare ("10.50", "10.50", ValidationCompareOperator.GreaterThan, ValidationDataType.Currency), "D83");
397 Assert.IsTrue (p.Compare ("10.50", "10.50", ValidationCompareOperator.GreaterThanEqual, ValidationDataType.Currency), "D84");
399 Assert.IsFalse (p.Compare ( "5.50", "10.50", ValidationCompareOperator.Equal, ValidationDataType.Currency), "D85");
400 Assert.IsTrue (p.Compare ( "5.50", "10.50", ValidationCompareOperator.NotEqual, ValidationDataType.Currency), "D86");
401 Assert.IsTrue (p.Compare ( "5.50", "10.50", ValidationCompareOperator.LessThan, ValidationDataType.Currency), "D87");
402 Assert.IsTrue (p.Compare ( "5.50", "10.50", ValidationCompareOperator.LessThanEqual, ValidationDataType.Currency), "D88");
403 Assert.IsFalse (p.Compare ( "5.50", "10.50", ValidationCompareOperator.GreaterThan, ValidationDataType.Currency), "D89");
404 Assert.IsFalse (p.Compare ( "5.50", "10.50", ValidationCompareOperator.GreaterThanEqual, ValidationDataType.Currency), "D90");
406 Assert.IsFalse (p.Compare ("10.50", "5.50", ValidationCompareOperator.Equal, ValidationDataType.Currency), "D91");
407 Assert.IsTrue (p.Compare ("10.50", "5.50", ValidationCompareOperator.NotEqual, ValidationDataType.Currency), "D92");
408 Assert.IsFalse (p.Compare ("10.50", "5.50", ValidationCompareOperator.LessThan, ValidationDataType.Currency), "D93");
409 Assert.IsFalse (p.Compare ("10.50", "5.50", ValidationCompareOperator.LessThanEqual, ValidationDataType.Currency), "D94");
410 Assert.IsTrue (p.Compare ("10.50", "5.50", ValidationCompareOperator.GreaterThan, ValidationDataType.Currency), "D95");
411 Assert.IsTrue (p.Compare ("10.50", "5.50", ValidationCompareOperator.GreaterThanEqual, ValidationDataType.Currency), "D96");
412 /* error conditions */
413 Assert.IsFalse (p.Compare ("hi", "5.50", ValidationCompareOperator.Equal, ValidationDataType.Currency), "D97");
414 Assert.IsFalse (p.Compare ("hi", "5.50", ValidationCompareOperator.NotEqual, ValidationDataType.Currency), "D98");
415 Assert.IsFalse (p.Compare ("hi", "5.50", ValidationCompareOperator.LessThan, ValidationDataType.Currency), "D99");
416 Assert.IsFalse (p.Compare ("hi", "5.50", ValidationCompareOperator.LessThanEqual, ValidationDataType.Currency), "D100");
417 Assert.IsFalse (p.Compare ("hi", "5.50", ValidationCompareOperator.GreaterThan, ValidationDataType.Currency), "D101");
418 Assert.IsFalse (p.Compare ("hi", "5.50", ValidationCompareOperator.GreaterThanEqual, ValidationDataType.Currency), "D102");
419 Assert.IsFalse (p.Compare (null, "5.50", ValidationCompareOperator.Equal, ValidationDataType.Currency), "D103");
421 Assert.IsTrue (p.Compare ( "5.50", "hi", ValidationCompareOperator.Equal, ValidationDataType.Currency), "D104");
422 Assert.IsTrue (p.Compare ( "5.50", "hi", ValidationCompareOperator.NotEqual, ValidationDataType.Currency), "D105");
423 Assert.IsTrue (p.Compare ( "5.50", "hi", ValidationCompareOperator.LessThan, ValidationDataType.Currency), "D106");
424 Assert.IsTrue (p.Compare ( "5.50", "hi", ValidationCompareOperator.LessThanEqual, ValidationDataType.Currency), "D107");
425 Assert.IsTrue (p.Compare ( "5.50", "hi", ValidationCompareOperator.GreaterThan, ValidationDataType.Currency), "D108");
426 Assert.IsTrue (p.Compare ( "5.50", "hi", ValidationCompareOperator.GreaterThanEqual, ValidationDataType.Currency), "D109");
427 Assert.IsTrue (p.Compare ( "5.50", null, ValidationCompareOperator.Equal, ValidationDataType.Currency), "D110");
429 Assert.IsFalse (p.Compare ("hi", null, ValidationCompareOperator.Equal, ValidationDataType.Currency), "D118");
430 Assert.IsFalse (p.Compare ( null, null, ValidationCompareOperator.Equal, ValidationDataType.Currency), "D119");
434 public void MiscPropertiesAndMethods()
436 BaseCompareValidatorPoker p = new BaseCompareValidatorPoker ();
439 Assert.AreEqual (p.GetCutoffYear(), 29, "E1");
441 Assert.AreEqual (p.GetCutoffYear(), 2029, "E1");
443 Assert.AreEqual (p.GetFullYear (29), 2029, "E2");
445 Assert.AreEqual (p.GetFullYear (30), 1930, "E3");
447 Assert.AreEqual (p.GetFullYear (30), 2030, "E3"); // XXX this is broken
450 Thread.CurrentThread.CurrentCulture = new CultureInfo ("en-GB", false);
451 Assert.AreEqual (p.GetDateElementOrder (), "dmy", "E4");
453 Thread.CurrentThread.CurrentCulture = new CultureInfo ("en-US", false);
454 Assert.AreEqual (p.GetDateElementOrder (), "mdy", "E5");
456 Thread.CurrentThread.CurrentCulture = new CultureInfo ("af-ZA", false);
457 Assert.AreEqual (p.GetDateElementOrder (), "ymd", "E6");