* @author Chuck Burgess */ /** * PHPUnit main() hack * * "Call class::main() if this source file is executed directly." */ if (!defined('PHPUnit_MAIN_METHOD')) { define('PHPUnit_MAIN_METHOD', 'XML_Unserializer_Objects_TestCase::main'); } require_once 'PHPUnit/Framework/TestCase.php'; require_once 'PHPUnit/Framework/TestSuite.php'; require_once 'PHPUnit/TextUI/TestRunner.php'; require_once 'XML/Unserializer.php'; /** * Unit Tests for serializing arrays * * @package XML_Serializer * @subpackage tests * @author Stephan Schmidt * @author Chuck Burgess */ class XML_Unserializer_Objects_TestCase extends PHPUnit_Framework_TestCase { public static function main() { $suite = new PHPUnit_Framework_TestSuite('XML_Unserializer_Objects_TestCase'); $result = PHPUnit_TextUI_TestRunner::run($suite); } protected function setUp() {} protected function tearDown() {} /** * Test unserializing to a stdClass object */ public function testStdClass() { $u = new XML_Unserializer(); $u->setOption(XML_UNSERIALIZER_OPTION_COMPLEXTYPE, 'object'); $xml = 'bar'; $u->unserialize($xml); $result = new stdClass(); $result->foo = 'bar'; $this->assertEquals($result, $u->getUnserializedData()); } /** * Test unserializing to a custom class */ public function testDefaultClass() { $u = new XML_Unserializer(); $u->setOption(XML_UNSERIALIZER_OPTION_COMPLEXTYPE, 'object'); $u->setOption(XML_UNSERIALIZER_OPTION_DEFAULT_CLASS, 'Foo'); $xml = 'bar'; $u->unserialize($xml); $result = new Foo(); $result->foo = 'bar'; $this->assertEquals($result, $u->getUnserializedData()); } /** * Test unserializing to a class based on the tag name */ public function testTagnameAsClass() { $u = new XML_Unserializer(); $u->setOption(XML_UNSERIALIZER_OPTION_COMPLEXTYPE, 'object'); $u->setOption(XML_UNSERIALIZER_OPTION_DEFAULT_CLASS, 'Foo'); $xml = 'tomato'; $u->unserialize($xml); $result = new Foo(); $result->bar = new Bar(); $result->bar->boo = 'tomato'; $this->assertEquals($result, $u->getUnserializedData()); } /** * Test unserializing with a setter method */ public function testSetterMethod() { $u = new XML_Unserializer(); $u->setOption(XML_UNSERIALIZER_OPTION_COMPLEXTYPE, 'object'); $u->setOption(XML_UNSERIALIZER_OPTION_DEFAULT_CLASS, 'Foo'); $xml = 'tomato'; $u->unserialize($xml); $result = new SetterExample(); $result->setFoo('tomato'); $this->assertEquals($result, $u->getUnserializedData()); } } class Foo {} class Bar {} class SetterExample { private $_hidden = null; public function setFoo($foo) { $this->_hidden = $foo; } } /** * PHPUnit main() hack * "Call class::main() if this source file is executed directly." */ if (PHPUnit_MAIN_METHOD == 'XML_Unserializer_Objects_TestCase::main') { XML_Unserializer_Objects_TestCase::main(); } ?>