<?php require_once dirname(__FILE__).'/../../phpunit.php'; Prado::using('System.I18N.core.DateTimeFormatInfo'); /** * @package System.I18N.core */ class DateTimeFormatInfoTest extends PHPUnit_Framework_TestCase { protected $format; function setUp() { $this->format = DateTimeFormatInfo::getInstance('en'); } function testAbbreviatedDayNames() { $names = $this->format->AbbreviatedDayNames; $this->assertTrue(is_array($names),'Must be an array!'); $this->assertEquals(count($names),7,'Must have 7 day names'); //assuming invariant culture. $days = array("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"); $this->assertEquals($names, $days); //try to set the data $data = array('Hel', 'wor'); $this->format->AbbreviatedDayNames = $data; $newNames = $this->format->AbbreviatedDayNames; $this->assertTrue(is_array($newNames),'Must be an array!'); $this->assertEquals(count($newNames),2,'Must have 2 entries'); $this->assertEquals($newNames, $data); } function testNarrowDayNames() { $names = $this->format->NarrowDayNames; $this->assertTrue(is_array($names),'Must be an array!'); $this->assertEquals(count($names),7,'Must have 7 day names'); //assuming invariant culture. $days = array("S", "M", "T", "W", "T", "F", "S"); $this->assertEquals($names, $days); //try to set the data $data = array('H', 'w'); $this->format->NarrowDayNames = $data; $newNames = $this->format->NarrowDayNames; $this->assertTrue(is_array($newNames),'Must be an array!'); $this->assertEquals(count($newNames),2,'Must have 2 entries'); $this->assertEquals($newNames, $data); } function testDayNames() { $names = $this->format->DayNames; $this->assertTrue(is_array($names),'Must be an array!'); $this->assertEquals(count($names),7,'Must have 7 day names'); //assuming invariant culture. $days = array( "Sunday","Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"); $this->assertEquals($names, $days); //try to set the data $data = array('Hello', 'world'); $this->format->DayNames = $data; $newNames = $this->format->DayNames; $this->assertTrue(is_array($newNames),'Must be an array!'); $this->assertEquals(count($newNames),2,'Must have 2 entries'); $this->assertEquals($newNames, $data); } function testMonthNames() { $names = $this->format->MonthNames; $this->assertTrue(is_array($names),'Must be an array!'); $this->assertEquals(count($names),12,'Must have 12 month names'); //assuming invariant culture. $days = array( "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"); $this->assertEquals($names, $days); //try to set the data $data = array('Hello', 'world'); $this->format->MonthNames = $data; $newNames = $this->format->MonthNames; $this->assertTrue(is_array($newNames),'Must be an array!'); $this->assertEquals(count($newNames),2,'Must have 2 entries'); $this->assertEquals($newNames, $data); } function testNarrowMonthNames() { $names = $this->format->NarrowMonthNames; $this->assertTrue(is_array($names),'Must be an array!'); $this->assertEquals(count($names),12,'Must have 12 month names'); //assuming invariant culture. $days = array( "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"); $this->assertEquals($names, $days); //try to set the data $data = array('Hello', 'world'); $this->format->NarrowMonthNames = $data; $newNames = $this->format->NarrowMonthNames; $this->assertTrue(is_array($newNames),'Must be an array!'); $this->assertEquals(count($newNames),2,'Must have 2 entries'); $this->assertEquals($newNames, $data); } function testAbbreviatedMonthNames() { $names = $this->format->AbbreviatedMonthNames; $this->assertTrue(is_array($names),'Must be an array!'); $this->assertEquals(count($names),12,'Must have 12 month names'); //assuming invariant culture. $days = array( "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"); $this->assertEquals($names, $days); //try to set the data $data = array('Hello', 'world'); $this->format->AbbreviatedMonthNames = $data; $newNames = $this->format->AbbreviatedMonthNames; $this->assertTrue(is_array($newNames),'Must be an array!'); $this->assertEquals(count($newNames),2,'Must have 2 entries'); $this->assertEquals($newNames, $data); } function testEra() { //era for invariant culture is assumed to have // 1 for AD and 0 for BC $this->assertEquals('AD', $this->format->getEra(1)); $this->assertEquals('BC', $this->format->getEra(0)); } function testAMPMMarkers() { $am_pm = array('AM','PM'); $data = $this->format->AMPMMarkers; $this->assertTrue(is_array($data)); $this->assertEquals($am_pm, $data); $this->assertEquals('AM', $this->format->AMDesignator); $this->assertEquals('PM', $this->format->PMDesignator); //try to set the data $data = array('Hello', 'world'); $this->format->AMPMMarkers = $data; $newNames = $this->format->AMPMMarkers; $this->assertTrue(is_array($newNames),'Must be an array!'); $this->assertEquals(count($newNames),2,'Must have 2 entries'); $this->assertEquals($newNames, $data); $this->format->AMDesignator = 'TTTT'; $this->assertEquals('TTTT',$this->format->AMDesignator); $this->format->PMDesignator = 'SSS'; $this->assertEquals('SSS',$this->format->PMDesignator); } function testPatterns() { //patterns for invariant $patterns = array( 'FullTimePattern' => 'h:mm:ss a z', 'LongTimePattern' => 'h:mm:ss a z', 'MediumTimePattern' => 'h:mm:ss a', 'ShortTimePattern' => 'h:mm a', 'FullDatePattern' => 'EEEE, MMMM d, yyyy', 'LongDatePattern' => 'MMMM d, yyyy', 'MediumDatePattern' => 'MMM d, yyyy', 'ShortDatePattern' => 'M/d/yy', 'DateTimeOrderPattern' => '{1} {0}' ); foreach($patterns as $property => $pattern) { $this->assertEquals($pattern, $this->format->$property); } $hello = 'Hello'; $world = 'world'; $expectedResult = $hello.' '.$world; $this->assertEquals($expectedResult, $this->format->formatDateTime($hello, $world)); } function testInvariantInfo() { $format = DateTimeFormatInfo::getInstance(); //the variant datetime format for medium date //should be the follow $pattern = 'MMM d, yyyy'; $this->assertEquals($pattern, $format->MediumDatePattern); $invariant = $format->getInvariantInfo(); $this->assertSame($format, $invariant); } function testGetInstance() { $format = DateTimeFormatInfo::getInstance('zh_CN'); $pattern = 'yyyy-M-d'; $this->assertEquals($pattern, $format->MediumDatePattern); } } ?>