"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);
}
}