true false XML; $xml = Braintree\Xml::buildXmlFromArray([ 'root' => ['yes' => true, 'no' => false] ]); $this->assertEquals($expected, $xml); } public function testCreatesArrays() { $expected = << foo bar XML; $xml = Braintree\Xml::buildXmlFromArray([ 'root' => ['stuff' => ['foo', 'bar']] ]); $this->assertEquals($expected, $xml); } public function testCreatesWithDashes() { $expected = << 42 3 XML; $xml = Braintree\Xml::buildXmlFromArray([ 'root' => ['someStuff' => ['innerFoo' => 42, 'barBarBar' => 3]] ]); $this->assertEquals($expected, $xml); } public function testCreatesArraysWithBooleans() { $expected = << true false XML; $xml = Braintree\Xml::buildXmlFromArray([ 'root' => ['stuff' => [true, false]] ]); $this->assertEquals($expected, $xml); } public function testHandlesEmptyArrays() { $expected = << XML; $xml = Braintree\Xml::buildXmlFromArray([ 'root' => ['stuff' => []] ]); $this->assertEquals($expected, $xml); } public function testEscapingSpecialChars() { $expected = << <>&'" XML; $xml = Braintree\Xml::buildXmlFromArray([ 'root' => ['stuff' => '<>&\'"'] ]); $this->assertEquals($expected, $xml); } public function testDoesNotModifyDateTime() { $date = new \DateTime(); $date->setTimestamp(strtotime('2016-05-17T21:22:26Z')); $date->setTimezone(new \DateTimeZone('Europe/Paris')); $originalDate = clone $date; $expected = << 2016-05-17T21:22:26Z XML; $xml = Braintree\Xml::buildXmlFromArray([ 'root' => ['stuff' => $date] ]); $this->assertEquals($originalDate, $date); $this->assertEquals($expected, $xml); } }