001: // Copyright (c) 2003-2007, Jodd Team (jodd.sf.net). All Rights Reserved.
002:
003: package jodd.datetime;
004:
005: import junit.framework.TestCase;
006:
007: public class ValidsTest extends TestCase {
008:
009: public void testValidDateTime() {
010: assertTrue(TimeUtil.isValidDate(2002, 1, 31));
011: assertFalse(TimeUtil.isValidDate(2002, 1, 32));
012: assertFalse(TimeUtil.isValidDate(2002, 2, 29));
013: assertFalse(TimeUtil.isValidDate(2002, 2, 0));
014: assertFalse(TimeUtil.isValidDate(2002, 0, 1));
015: assertFalse(TimeUtil.isValidDate(2002, 13, 29));
016: assertTrue(TimeUtil.isValidDate(2002, 12, 29));
017: assertTrue(TimeUtil.isValidDate(2000, 2, 29));
018: assertFalse(TimeUtil.isValidDate(1900, 2, 29));
019:
020: assertTrue(TimeUtil.isValidTime(0, 0, 0));
021: assertFalse(TimeUtil.isValidTime(0, 0, 60));
022: assertFalse(TimeUtil.isValidTime(0, 60, 0));
023: assertTrue(TimeUtil.isValidTime(0, 59, 0));
024: assertFalse(TimeUtil.isValidTime(24, 0, 0));
025: assertTrue(TimeUtil.isValidTime(23, 0, 0));
026: assertTrue(TimeUtil.isValidTime(23, 59, 0));
027: assertTrue(TimeUtil.isValidTime(23, 59, 59));
028: assertTrue(TimeUtil.isValidTime(23, 59, 59.999999999));
029:
030: assertTrue(TimeUtil.isValidDateTime(2000, 2, 29, 23, 59,
031: 59.999999999));
032: assertFalse(TimeUtil.isValidDateTime(2001, 2, 29, 23, 59,
033: 59.999999999));
034: assertFalse(TimeUtil.isValidDateTime(2000, -1, 79, 23, 59,
035: 59.999999999));
036: assertFalse(TimeUtil.isValidDateTime(2000, 1, 79, 23, 59,
037: 59.999999999));
038: }
039:
040: public void testIsValid() {
041: JDateTime jdt = new JDateTime();
042: assertTrue(jdt.isValid("2002-01-31"));
043: assertTrue(jdt.isValid("2002-1-31"));
044: assertFalse(jdt.isValid("2002-1-32"));
045: assertFalse(jdt.isValid("2002-2-29"));
046: assertFalse(jdt.isValid("2002-02-29"));
047: assertFalse(jdt.isValid("2002-02-0"));
048: assertFalse(jdt.isValid("2002-2-0"));
049: assertFalse(jdt.isValid("2002-0-01"));
050: assertFalse(jdt.isValid("2002-00-01"));
051: assertFalse(jdt.isValid("2002-13-29"));
052: assertTrue(jdt.isValid("2002-12-29"));
053: assertTrue(jdt.isValid("2000-2-29"));
054: assertTrue(jdt.isValid("2000-02-29"));
055: assertFalse(jdt.isValid("1900-2-29"));
056:
057: assertTrue(jdt.isValid("2002-1-1"));
058: assertTrue(jdt.isValid("2002-01-01"));
059: assertTrue(jdt.isValid("2002-1-01"));
060: assertTrue(jdt.isValid("2002-01-1"));
061:
062: assertTrue(jdt.isValid("0-1-1"));
063:
064: assertTrue(jdt.isValid("0-1-1 12"));
065: assertTrue(jdt.isValid("0-1-1 12:23"));
066: assertTrue(jdt.isValid("0-1-1 12:23:34"));
067: assertTrue(jdt.isValid("0-1-1 12:23:00"));
068: assertTrue(jdt.isValid("0-1-1 12:23:01"));
069: assertTrue(jdt.isValid("0-1-1 12:23:0"));
070: assertTrue(jdt.isValid("0-1-1 12:23:1"));
071: assertTrue(jdt.isValid("0-1-1 12:23:34.567"));
072: assertTrue(jdt.isValid("0-1-1 02:03:04.007"));
073: assertTrue(jdt.isValid("0-1-1 2:3:4.007"));
074: assertFalse(jdt.isValid("0-1-1 2:3:60.000"));
075: assertTrue(jdt.isValid("0-1-1 2:3:59.999"));
076:
077: assertFalse(jdt.isValid("a-a-a a:a:a"));
078: assertFalse(jdt.isValid("z-1-1 2:3:4.007"));
079: assertFalse(jdt.isValid("2-A-1 2:3:4.007"));
080: assertFalse(jdt.isValid("2-3-1 2:3: .4.007"));
081: assertTrue(jdt.isValid("2-3-1 2:3: 4.007"));
082: }
083:
084: public void testIsValid2() {
085: JDateTime jdt = new JDateTime();
086: String date = jdt.toString("YYYY-MM-DD");
087:
088: for (int sec = 0; sec < 60; sec++) {
089: for (int ms = 0; ms < 1000; ms++) {
090: String mss;
091: if (ms < 10) {
092: mss = "00" + ms;
093: } else if (ms < 100) {
094: mss = "0" + ms;
095: } else {
096: mss = String.valueOf(ms);
097: }
098: String s1 = date + " 00:00:" + sec + '.' + mss;
099: assertTrue(jdt.isValid(s1));
100: }
101: }
102:
103: }
104:
105: }
|