1 16 package org.joda.time; 17 18 import junit.framework.TestCase; 19 import junit.framework.TestSuite; 20 21 import org.joda.time.chrono.BuddhistChronology; 22 import org.joda.time.chrono.CopticChronology; 23 import org.joda.time.chrono.ISOChronology; 24 25 30 public class TestPartial_Match extends TestCase { 31 32 private static final DateTimeZone PARIS = DateTimeZone.forID("Europe/Paris"); 33 private static final DateTimeZone LONDON = DateTimeZone.forID("Europe/London"); 34 private static final DateTimeZone TOKYO = DateTimeZone.forID("Asia/Tokyo"); 35 private static final int OFFSET = 1; 36 private static final Chronology COPTIC_PARIS = CopticChronology.getInstance(PARIS); 37 private static final Chronology COPTIC_LONDON = CopticChronology.getInstance(LONDON); 38 private static final Chronology COPTIC_TOKYO = CopticChronology.getInstance(TOKYO); 39 private static final Chronology COPTIC_UTC = CopticChronology.getInstanceUTC(); 40 private static final Chronology ISO_PARIS = ISOChronology.getInstance(PARIS); 41 private static final Chronology ISO_LONDON = ISOChronology.getInstance(LONDON); 42 private static final Chronology ISO_TOKYO = ISOChronology.getInstance(TOKYO); 43 private static final Chronology ISO_UTC = ISOChronology.getInstanceUTC(); 44 private static final Chronology BUDDHIST_PARIS = BuddhistChronology.getInstance(PARIS); 45 private static final Chronology BUDDHIST_LONDON = BuddhistChronology.getInstance(LONDON); 46 private static final Chronology BUDDHIST_TOKYO = BuddhistChronology.getInstance(TOKYO); 47 private static final Chronology BUDDHIST_UTC = BuddhistChronology.getInstanceUTC(); 48 49 private long TEST_TIME_NOW = 50 10L * DateTimeConstants.MILLIS_PER_HOUR 51 + 20L * DateTimeConstants.MILLIS_PER_MINUTE 52 + 30L * DateTimeConstants.MILLIS_PER_SECOND 53 + 40L; 54 55 private long TEST_TIME1 = 56 1L * DateTimeConstants.MILLIS_PER_HOUR 57 + 2L * DateTimeConstants.MILLIS_PER_MINUTE 58 + 3L * DateTimeConstants.MILLIS_PER_SECOND 59 + 4L; 60 61 private long TEST_TIME2 = 62 1L * DateTimeConstants.MILLIS_PER_DAY 63 + 5L * DateTimeConstants.MILLIS_PER_HOUR 64 + 6L * DateTimeConstants.MILLIS_PER_MINUTE 65 + 7L * DateTimeConstants.MILLIS_PER_SECOND 66 + 8L; 67 68 private DateTimeZone zone = null; 69 70 public static void main(String [] args) { 71 junit.textui.TestRunner.run(suite()); 72 } 73 74 public static TestSuite suite() { 75 return new TestSuite(TestPartial_Match.class); 76 } 77 78 public TestPartial_Match(String name) { 79 super(name); 80 } 81 82 protected void setUp() throws Exception { 83 DateTimeUtils.setCurrentMillisFixed(TEST_TIME_NOW); 84 zone = DateTimeZone.getDefault(); 85 DateTimeZone.setDefault(LONDON); 86 } 87 88 protected void tearDown() throws Exception { 89 DateTimeUtils.setCurrentMillisSystem(); 90 DateTimeZone.setDefault(zone); 91 zone = null; 92 } 93 94 public void testIsMatch() { 96 Partial test = createYMDwPartial(ISO_UTC, 2005, 7, 2); 98 DateTime instant = new DateTime(2005, 7, 5, 0, 0, 0, 0); 99 assertEquals(true, test.isMatch(instant)); 100 101 instant = new DateTime(2005, 7, 4, 0, 0, 0, 0); 102 assertEquals(false, test.isMatch(instant)); 103 104 instant = new DateTime(2005, 7, 6, 0, 0, 0, 0); 105 assertEquals(false, test.isMatch(instant)); 106 107 instant = new DateTime(2005, 7, 12, 0, 0, 0, 0); 108 assertEquals(true, test.isMatch(instant)); 109 110 instant = new DateTime(2005, 7, 19, 0, 0, 0, 0); 111 assertEquals(true, test.isMatch(instant)); 112 113 instant = new DateTime(2005, 7, 26, 0, 0, 0, 0); 114 assertEquals(true, test.isMatch(instant)); 115 116 instant = new DateTime(2005, 8, 2, 0, 0, 0, 0); 117 assertEquals(false, test.isMatch(instant)); 118 119 instant = new DateTime(2006, 7, 5, 0, 0, 0, 0); 120 assertEquals(false, test.isMatch(instant)); 121 122 instant = new DateTime(2005, 6, 5, 0, 0, 0, 0); 123 assertEquals(false, test.isMatch(instant)); 124 } 125 126 private Partial createYMDwPartial(Chronology chrono, int year, int month, int dow) { 128 return new Partial( 129 new DateTimeFieldType[] { 130 DateTimeFieldType.year(), 131 DateTimeFieldType.monthOfYear(), 132 DateTimeFieldType.dayOfWeek()}, 133 new int[] {year, month, dow}, 134 chrono); 135 } 136 137 } 138 | Popular Tags |