Example #1
0
 /**
  * Test various API methods for API completeness.
  */
 public function testGenericAPI()
 {
     /*
     UErrorCode status = U_ZERO_ERROR;
     UDate d;
     UnicodeString str;
     */
     $eq = $b4 = $af = false;
     $when = $this->date(90, AgaviDateDefinitions::APRIL, 15);
     $tzid = "TestZone";
     $tzoffset = 123400;
     $zone = new AgaviSimpleTimeZone($this->tm, $tzoffset, $tzid);
     $cal = $this->tm->createCalendar($zone);
     $this->assertTrue($cal->getTimeZone()->__is_equal($zone), 'AgaviCalendar::getTimeZone failed');
     $cal2 = $this->tm->createCalendar($cal->getTimeZone());
     $cal->setTime($when);
     $cal2->setTime($when);
     $this->assertTrue($cal->__is_equal($cal2), 'AgaviCalendar::operator== failed');
     $this->assertFalse($cal->__is_not_equal($cal2), 'AgaviCalendar::operator!= failed');
     $this->assertFalse(!$cal->equals($cal2) || $cal->before($cal2) || $cal->after($cal2), 'equals/before/after failed');
     $cal2->setTime($when + 1000);
     $b1 = $cal->equals($cal2);
     $b2 = $cal2->before($cal);
     $b3 = $cal->after($cal2);
     $this->assertFalse($cal->equals($cal2) || $cal2->before($cal) || $cal->after($cal2), 'equals/before/after failed after setTime(+1000)');
     $cal->roll(AgaviDateDefinitions::SECOND, true);
     $this->assertFalse(!($eq = $cal->equals($cal2)) || ($b4 = $cal->before($cal2)) || ($af = $cal->after($cal2)), sprintf("equals[%s]/before[%s]/after[%s] failed after roll 1 second [should be T/F/F]", $eq ? 'T' : 'F', $b4 ? 'T' : 'F', $af ? 'T' : 'F'));
     // Roll back to January
     $cal->roll(AgaviDateDefinitions::MONTH, (int) (1 + AgaviDateDefinitions::DECEMBER - $cal->get(AgaviDateDefinitions::MONTH)));
     $this->assertFalse($cal->equals($cal2) || $cal2->before($cal) || $cal->after($cal2), 'equals/before/after failed after rollback to January');
     for ($i = 0; $i < 2; ++$i) {
         $lenient = $i > 0;
         $cal->setLenient($lenient);
         $this->assertEquals($lenient, $cal->isLenient(), 'setLenient/isLenient failed');
         // Later: Check for lenient behavior
     }
     for ($i = AgaviDateDefinitions::SUNDAY; $i <= AgaviDateDefinitions::SATURDAY; ++$i) {
         $cal->setFirstDayOfWeek($i);
         $this->assertEquals($i, $cal->getFirstDayOfWeek(), 'set/getFirstDayOfWeek failed');
     }
     for ($i = 1; $i <= 7; ++$i) {
         $cal->setMinimalDaysInFirstWeek($i);
         $this->assertEquals($i, $cal->getMinimalDaysInFirstWeek(), 'set/getFirstDayOfWeek failed');
     }
     for ($i = 0; $i < AgaviDateDefinitions::FIELD_COUNT; ++$i) {
         $this->assertEquals($cal->getMinimum($i), $cal->getGreatestMinimum($i), 'getMinimum doesn\'t match getGreatestMinimum for field ' . $i);
         $this->assertFalse($cal->getLeastMaximum($i) > $cal->getMaximum($i), 'getLeastMaximum larger than getMaximum for field ' . $i);
         $this->assertFalse($cal->getMinimum($i) >= $cal->getMaximum($i), 'getMinimum not less than getMaximum for field ' . $i);
     }
     $cal->setTimeZone($this->tm->getDefaultTimeZone());
     $cal->clear();
     $cal->set2(1984, 5, 24);
     $this->assertEquals($this->date(84, 5, 24), $cal->getTime(), 'AgaviCalendarCalendar::set(3 args) failed');
     $cal->clear();
     $cal->set3(1985, 3, 2, 11, 49);
     $this->assertEquals($this->date(85, 3, 2, 11, 49), $cal->getTime(), 'AgaviCalendar::set(5 args) failed');
     $cal->clear();
     $cal->set4(1995, 9, 12, 1, 39, 55);
     $this->assertEquals($this->date(95, 9, 12, 1, 39, 55), $cal->getTime(), 'AgaviCalendar::set(6 args) failed');
     $cal->getTime();
     for ($i = 0; $i < AgaviDateDefinitions::FIELD_COUNT; ++$i) {
         switch ($i) {
             case AgaviDateDefinitions::YEAR:
             case AgaviDateDefinitions::MONTH:
             case AgaviDateDefinitions::DATE:
             case AgaviDateDefinitions::HOUR_OF_DAY:
             case AgaviDateDefinitions::MINUTE:
             case AgaviDateDefinitions::SECOND:
             case AgaviDateDefinitions::EXTENDED_YEAR:
                 $this->assertTrue($cal->_isSet($i), 'AgaviCalendar::isSet F, should be T ' . $this->fieldName($i));
                 break;
             default:
                 $this->assertFalse($cal->_isSet($i), 'AgaviCalendar::isSet = T, should be F  ' . $this->fieldName($i));
         }
         $cal->clear($i);
         $this->assertFalse($cal->_isSet($i), 'AgaviCalendar::clear/isSet failed ' + $this->fieldName($i));
     }
     return;
     // TODO: enable again
     // TODO: there is no api for this currently
     $cal = AgaviCalendar::createInstance(AgaviTimeZone::createDefault(), AgaviLocale::getEnglish());
     $cal = AgaviCalendar::createInstance($zone, AgaviLocale::getEnglish());
     $gc = $this->tm->createCalendar($zone);
     $gc = $this->tm->createCalendar(AgaviLocale::getEnglish());
     $gc = $this->tm->createCalendar(AgaviLocale::getEnglish());
     $gc = new AgaviGregorianCalendar($zone, AgaviLocale::getEnglish());
     $gc = $this->tm->createCalendar($zone);
     $gc = new AgaviGregorianCalendar(1998, 10, 14, 21, 43);
     $this->assertEquals($this->date(98, 10, 14, 21, 43), $gc->getTime());
     $gc = new AgaviGregorianCalendar(1998, 10, 14, 21, 43, 55);
     $this->assertEquals($this->date(98, 10, 14, 21, 43, 55), $gc->getTime());
     $gc2 = new AgaviGregorianCalendar(AgaviLocale::getEnglish());
     $gc2 = clone $gc;
     $this->assertFalse($gc2->__is_not_equal($gc) || !$gc2->__is_equal($gc), 'AgaviGregorianCalendar assignment/operator==/operator!= failed');
 }