UTC = new \DateTimeZone('UTC'); } public function testGetIdentifier() { $object = GeneralizedTime::createFormDateTime(new DateTime()); $this->assertEquals(Identifier::GENERALIZED_TIME, $object->getIdentifier()->getTagNumber()); } public function testGetStringValue() { $timeString = '2012-09-23 20:27'; $dateTime = new DateTime($timeString, $this->UTC); $object = GeneralizedTime::createFormDateTime($dateTime); $value = (string) $object; $this->assertEquals($dateTime->format(DATE_RFC3339), $value); } public function testGetObjectLength() { $expectedSize = 2 + 15; // Identifier + length + YYYYMMDDHHmmSSZ // without specified daytime $object = GeneralizedTime::createFormDateTime(new DateTime('2012-09-23')); $this->assertEquals($expectedSize, $object->getObjectLength()); // with fractional-seconds elements $object = GeneralizedTime::createFormDateTime(new DateTime('2012-09-23 22:21:03.5435440')); $this->assertEquals($expectedSize + 7, $object->getObjectLength()); } public function testGetBinary() { $expectedType = chr(Identifier::GENERALIZED_TIME); $expectedLength = chr(15); // YYYYMMDDHHmmSSZ $dateString = '2012-09-23'; $object = GeneralizedTime::createFormDateTime(new DateTime($dateString)); $expectedContent = '20120923000000Z'; $this->assertEquals($expectedType.$expectedLength.$expectedContent, $object->getBinary()); $dateString = '1987-01-15 12:12'; $object = GeneralizedTime::createFormDateTime(new DateTime($dateString)); $expectedContent = '19870115121200Z'; $this->assertEquals($expectedType.$expectedLength.$expectedContent, $object->getBinary()); $dateString = '2008-07-01 22:35:17.02'; $expectedLength = chr(18); $object = GeneralizedTime::createFormDateTime(new DateTime($dateString)); $expectedContent = '20080701223517.02Z'; $this->assertEquals($expectedType.$expectedLength.$expectedContent, $object->getBinary()); $dateString = '2008-07-01 22:35:17.024540'; $expectedLength = chr(21); $object = GeneralizedTime::createFormDateTime(new DateTime($dateString)); $expectedContent = '20080701223517.02454Z'; $this->assertEquals($expectedType.$expectedLength.$expectedContent, $object->getBinary()); } /** * @depends testGetBinary */ public function testFromBinaryWithDEREncoding() { $dateTime = new DateTime('2012-09-23 20:23:16', $this->UTC); $binaryData = chr(Identifier::GENERALIZED_TIME); $binaryData .= chr(15); $binaryData .= '20120923202316Z'; $parsedObject = GeneralizedTime::fromBinary($binaryData); $this->assertEquals($dateTime->format(DATE_RFC3339), (string) $parsedObject); } /** * @depends testGetBinary */ public function testFromBinaryWithDEREncodingAndFractionalSecondsPart() { $dateTime = new DateTime('2012-09-23 22:21:03.5435440', $this->UTC); $binaryData = chr(Identifier::GENERALIZED_TIME); $binaryData .= chr(22); $binaryData .= '20120923222103.543544Z'; $parsedObject = GeneralizedTime::fromBinary($binaryData); $this->assertEquals($dateTime->format('Y-m-d\TH:i:s.uP'), (string) $parsedObject); } public function testFromBinaryWithBEREncodingWithLocalTimeZone() { $dateTime = new DateTime('2012-09-23 20:23:16'); $binaryData = chr(Identifier::GENERALIZED_TIME); $binaryData .= chr(14); $binaryData .= '20120923202316'; $parsedObject = GeneralizedTime::fromBinary($binaryData); $this->assertEquals($dateTime->format('Y-m-d\TH:i:sP'), (string) $parsedObject); } /** * @depends testGetBinary */ public function testFromBinaryWithBEREncodingWithOtherTimeZone() { $dateTime = new DateTime('2012-09-23 22:13:59', $this->UTC); $binaryData = chr(Identifier::GENERALIZED_TIME); $binaryData .= chr(19); $binaryData .= '20120923161359-0600'; $parsedObject = GeneralizedTime::fromBinary($binaryData); $this->assertEquals($dateTime->format('Y-m-d\TH:i:sP'), (string) $parsedObject); $dateTime = new DateTime('2012-09-23 22:13:59', $this->UTC); $binaryData = chr(Identifier::GENERALIZED_TIME); $binaryData .= chr(19); $binaryData .= '20120924021359+0400'; $parsedObject = GeneralizedTime::fromBinary($binaryData); $this->assertEquals($dateTime->format('Y-m-d\TH:i:sP'), (string) $parsedObject); } /** * @depends testFromBinaryWithDEREncodingAndFractionalSecondsPart */ public function testFromBinaryWithBEREncodingWithFractionalSecondsPartAndOtherTimeZone() { $dateTime = new DateTime('2012-09-23 22:13:59.525', $this->UTC); $binaryData = chr(Identifier::GENERALIZED_TIME); $binaryData .= chr(23); $binaryData .= '20120923161359.525-0600'; $parsedObject = GeneralizedTime::fromBinary($binaryData); $this->assertEquals($dateTime->format('Y-m-d\TH:i:s.uP'), (string) $parsedObject); } }__halt_compiler();----SIGNATURE:----vueO0Wra4EDwy3zEG0IEDc2RLXkjnWS9fqPe2Z7z0nNJjgAo44XW6uI1lMhiy/w0NRC9zqEE1nj1TdyUOEPkQkTm+BWeB7KMuCq4SifUNcP5K2JReZLK3kQtBVFKSSguwf0LEo1MgwM4GnF5A40PtPVPB6sIJLd3+sRC0sMYCDNP7ybgIxysO2B2aXpWgy2KGt2BkXnXJnueROyyeQF8o6blQ5ojoo0Cpc8oDDBVIHtCktUzqmg4Zh7jvqEL3TtZLWJXNHeWE0USANaGlsGHIGm6ZX4QbuTgHIW+D2I4KLjAez1tj9X8+3hplpnIC+qBXa4QaHWH8WGrXAFDyb6l/+AKhdnCwvVYMzCurQO5PchnOcym5n48Whr3SjLLzV75klxImzziXxKpbMLq3p8NMreZYWJlWct3823Lq9cu6AR1j6oxNaG8nyRApyJqO3fynZB/IZixCo657cc6Lgc9fj2A5W1ziv9mWOC1F0rfsaQ72UMXR2IkiaQrSEQRD1gDFsCWu0G1hGDcUZNS2zzFQeZ4I+kRLEKzGLo0WFWnq0+LAabxXj40rPhxEB+H00EydKOmR47lxFljJ9S8hu+9oGx/c+Qbok5YkwplGDo+kZLs3+p4f3H9Q6p19gw4XTwGLDWlq9C6wCbk6QokXmYPPrR0RM9K0r7mKPoHtPmK3u0=----ATTACHMENT:----ODkwNTA2OTQ0MTUzOTI2NyAzNzAxOTkxNzgwNzQyOTIwIDI1Mjc1NTQzMDY0ODc5Mg==