Preview: Xml_GeneratorTest.php
Size: 3.04 KB
/home/godevadmin/www/admin/braintree/final/braintree_php-master/tests/unit/Xml_GeneratorTest.php
<?php
namespace Test\Unit\Xml;
require_once dirname(__DIR__) . '/Setup.php';
use Test\Setup;
use Braintree;
class GeneratorTest extends Setup
{
public function testSetsTypeAttributeForBooleans()
{
$expected = <<<XML
<?xml version="1.0" encoding="UTF-8"?>
<root>
<yes type="boolean">true</yes>
<no type="boolean">false</no>
</root>
XML;
$xml = Braintree\Xml::buildXmlFromArray([
'root' => ['yes' => true, 'no' => false]
]);
$this->assertEquals($expected, $xml);
}
public function testCreatesArrays()
{
$expected = <<<XML
<?xml version="1.0" encoding="UTF-8"?>
<root>
<stuff type="array">
<item>foo</item>
<item>bar</item>
</stuff>
</root>
XML;
$xml = Braintree\Xml::buildXmlFromArray([
'root' => ['stuff' => ['foo', 'bar']]
]);
$this->assertEquals($expected, $xml);
}
public function testCreatesWithDashes()
{
$expected = <<<XML
<?xml version="1.0" encoding="UTF-8"?>
<root>
<some-stuff>
<inner-foo type="integer">42</inner-foo>
<bar-bar-bar type="integer">3</bar-bar-bar>
</some-stuff>
</root>
XML;
$xml = Braintree\Xml::buildXmlFromArray([
'root' => ['someStuff' => ['innerFoo' => 42, 'barBarBar' => 3]]
]);
$this->assertEquals($expected, $xml);
}
public function testCreatesArraysWithBooleans()
{
$expected = <<<XML
<?xml version="1.0" encoding="UTF-8"?>
<root>
<stuff type="array">
<item>true</item>
<item>false</item>
</stuff>
</root>
XML;
$xml = Braintree\Xml::buildXmlFromArray([
'root' => ['stuff' => [true, false]]
]);
$this->assertEquals($expected, $xml);
}
public function testHandlesEmptyArrays()
{
$expected = <<<XML
<?xml version="1.0" encoding="UTF-8"?>
<root>
<stuff type="array"/>
</root>
XML;
$xml = Braintree\Xml::buildXmlFromArray([
'root' => ['stuff' => []]
]);
$this->assertEquals($expected, $xml);
}
public function testEscapingSpecialChars()
{
$expected = <<<XML
<?xml version="1.0" encoding="UTF-8"?>
<root>
<stuff><>&'"</stuff>
</root>
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 = <<<XML
<?xml version="1.0" encoding="UTF-8"?>
<root>
<stuff type="datetime">2016-05-17T21:22:26Z</stuff>
</root>
XML;
$xml = Braintree\Xml::buildXmlFromArray([
'root' => ['stuff' => $date]
]);
$this->assertEquals($originalDate, $date);
$this->assertEquals($expected, $xml);
}
}
Directory Contents
Dirs: 2 × Files: 33