* @author Chuck Burgess */ 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 { /** * 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; } } ?>