"bar", "bar" => "baz"), '', ), array( array("foo" => array("bar" => "baz")), '', ), array( array("foo" => array("baz", "foo")), ''. ''. ''. ''. ''. ''. '', ), array( array("foo" => array()), ''. ''. ''. '', ), array( array(), '', ), array( array('foo' => 100, 'bar' => 1.32), '' ) ); } /** * @dataProvider dataArrayToXml * @param array $array * @param string $expectedXml */ public function testArrayToXml($array, $expectedXml) { $actualXml = Zend_Entity_StateTransformer_XmlSerializer::toXml($array); $actualXml = str_replace("\n", "", $actualXml); $this->assertEquals($expectedXml, $actualXml); } public function testNonArrayToXml_ThrowsException() { $this->setExpectedException( "Zend_Entity_StateTransformer_Exception", "Trying to transform 'string' to xml but an array is expected." ); Zend_Entity_StateTransformer_XmlSerializer::toXml("invalid"); } public function testArray_WithNonPrimativeObjectIncluded_ThrowsException() { $this->setExpectedException( "Zend_Entity_StateTransformer_Exception", "Can only serialize an array of primative integer, float and string datataypes." ); Zend_Entity_StateTransformer_XmlSerializer::toXml(array(new stdClass())); } public function testArray_WithNonPrimativeBooleanIncluded_ThrowsException() { $this->setExpectedException( "Zend_Entity_StateTransformer_Exception", "Can only serialize an array of primative integer, float and string datataypes." ); Zend_Entity_StateTransformer_XmlSerializer::toXml(array(true)); } public function testDeserialize_NonString_ThrowsException() { $this->setExpectedException( "Zend_Entity_StateTransformer_Exception", "Can only deserialize xml strings to an array." ); Zend_Entity_StateTransformer_XmlSerializer::fromXml(array()); } public function testDeserialize_NonXmlBeginning_ThrowsException() { $this->setExpectedException( "Zend_Entity_StateTransformer_Exception", "Can only deserialize xml strings to an array." ); Zend_Entity_StateTransformer_XmlSerializer::fromXml("foo"); } static public function dataXmlToArray() { return array( array( '', array() ), array( '', array("foo" => array()) ), array( '', array('foo' => array('bar')) ), array( '', array('foo' => array('baz' => 'bar')) ), array( '', array('foo' => 1.32, 'bar' => 100), ), ); } /** * * @dataProvider dataXmlToArray * @param string $xml * @param array $expectedArray */ public function testDeserializeXmlToArray($xml, $expectedArray) { $actualArray = Zend_Entity_StateTransformer_XmlSerializer::fromXml($xml); $this->assertEquals($expectedArray, $actualArray); } }