<?php
require_once 'PHPUnit/Framework.php';
require_once dirname(__FILE__) . '/../XmlHelper.class.php';
/**
* Test class for XmlHelper.
* Generated by PHPUnit on 2010-12-16 at 10:45:10.
*/
class XmlHelperTest extends PHPUnit_Framework_TestCase {
/**
* @var XmlHelper
*/
protected $object;
/**
* Sets up the fixture, for example, opens a network connection.
* This method is called before a test is executed.
*/
protected function setUp() {
$this->object = new XmlHelper;
$this->testData = dirname(__FILE__) . '/testXmlData/';
}
/**
* Tears down the fixture, for example, closes a network connection.
* This method is called after a test is executed.
*/
protected function tearDown() {
}
/*
* @covers XmlHelper
*/
public function testGetParserVals() {
$xmlString = file_get_contents("$this->testData/xmlbase.xml");
$helper = new XmlHelper();
$helper->setCaseFolding(false);
$data = $helper->xmlToArray ($xmlString);
$vals = $helper->getParserVals();
// print_r($vals);
$this->assertEquals('root', $vals[0][tag]);
$this->assertEquals('open', $vals[0][type]);
}
/*
* @covers XmlHelper
*/
public function testSetCaseFolding() {
$xmlString = file_get_contents("$this->testData/ibm.xml");
$helper = new XmlHelper();
$helper->setCaseFolding(true);
$data = $helper->xmlToArray ($xmlString);
// print_r($data);
$this->assertEquals(0, count($data[BOOK]));
}
/*
* @covers XmlHelper
*/
public function testSetTrimText() {
$xmlString = file_get_contents("$this->testData/55521_total_only.xml");
$helper = new XmlHelper();
$helper->setCaseFolding(false);
$helper->setTrimText(true);
$data = $helper->xmlToArray ($xmlString);
// print_r($data);
$this->assertType('array', $data);
$this->assertEquals(175.27, $data['Order']['Total']['Line'][3]['value']);
$xml = $helper->arrayToXml($data);
$save = $helper->xmlToArray($xml);
$this->assertEquals($data, $save);
}
/*
* @covers XmlHelper
*/
function testNoAttributesFlag() {
$xmlString = file_get_contents("$this->testData/endicia-status.xml");
$helper = new XmlHelper();
$helper->setNoAttributes(true);
$helper->setCaseFolding(false);
$data = $helper->xmlToArray ($xmlString);
// print_r($data);
$this->assertTrue(! isset($data['DAZzle']['Package'][0]['attributes']['ID']));
$this->assertEquals(20, count($data[DAZzle]['Package']));
$this->assertEquals('9101148008600102977907', $data[DAZzle][Package][19][PIC]);
$xml = $helper->arrayToXml($data);
$data = $helper->xmlToArray($xml);
$this->assertEquals('9101148008600102977907', $data[DAZzle][Package][19][PIC]);
}
/*
* @covers XmlHelper
*/
function test_8() {
require "$this->testData/large_array.php";
$helper = new XmlHelper();
$xml = $helper->arrayToXml($data);
// print $xml;
file_put_contents("$this->testData/large_array.xml", $xml);
$helper->setCaseFolding(false);
$save = $helper->xmlToArray($xml);
$this->assertEquals(count($save), count($data));
$this->assertEquals(count($save['data']['order']), count($data['data']['order']));
$this->assertEquals('167.188.175.7', $save['data']['order']['extra']['ip']['value']);
$this->assertEquals(count($save['data']['products']), count($data['data']['products'][0]));
$this->assertEquals(count($save['data']['userinfo']), count($data['data']['userinfo']));
$this->assertEquals(4, count($save['data']['userinfo']['field_sections']));
}
/*
* @covers XmlHelper
*/
function test_7() {
$xmlString = file_get_contents("$this->testData/endicia-status.xml");
$helper = new XmlHelper();
$helper->setCaseFolding(false);
$data = $helper->xmlToArray ($xmlString);
// print_r($data);
$this->assertEquals(20, count($data[DAZzle]['Package']));
$this->assertEquals('9101148008600102977907', $data[DAZzle][Package][19][PIC][value]);
$xml = $helper->arrayToXml($data);
$data = $helper->xmlToArray($xml);
$this->assertEquals('9101148008600102977907', $data[DAZzle][Package][19][PIC][value]);
}
/*
* @covers XmlHelper
*/
function test_6() {
$xmlString = file_get_contents("$this->testData/55521_cwr.xml");
$helper = new XmlHelper();
$helper->setCaseFolding(true);
$data = $helper->xmlToArray ($xmlString);
// print_r($data);
$this->assertEquals('rogue-55521', $data['ORDER']['ATTRIBUTES']['ID']);
$this->assertEquals('ship', $data['ORDER']['ADDRESSINFO'][0]['ATTRIBUTES']['TYPE']);
$xml = $helper->arrayToXml($data);
$save = $helper->xmlToArray($xml);
$this->assertEquals($data, $save);
}
/*
* @covers XmlHelper
*/
function test_5() {
$xmlString = file_get_contents("$this->testData/purchase-order-sample.xml");
$helper = new XmlHelper();
$helper->setCaseFolding(true);
$data = $helper->xmlToArray ($xmlString);
// print_r($data);
$this->assertEquals(1001, $data['PURCHASEORDER']['PURCHASEORDERNUMBER']['VALUE']);
$this->assertEquals('P3456SL', $data['PURCHASEORDER']
['PURCHASEORDERITEMDETAIL'][0]['VENDORPRODUCTID']['VALUE']);
$xml = $helper->arrayToXml($data);
$save = $helper->xmlToArray($xml);
$this->assertEquals($data, $save);
}
/*
* @covers XmlHelper
*/
function test_4() {
$xmlString = file_get_contents("$this->testData/base_test.xml");
$helper = new XmlHelper();
$helper->setCaseFolding(false);
$data = $helper->xmlToArray ($xmlString);
// print_r($data);
$this->assertEquals(4, $data['LEVEL-0']['attributes']['yy']);
$this->assertTrue(strpos($data['LEVEL-0']['value'], 'somedata') > 0);
$this->assertEquals('abc', $data['LEVEL-0']['LEVEL-1']['LEVEL-2a']['value']);
$this->assertEquals(1, $data['LEVEL-0']['LEVEL-1']['LEVEL-2a']['attributes']['xx']);
$this->assertEquals('def', $data['LEVEL-0']['LEVEL-1']['LEVEL-2b'][0]['value']);
$this->assertEquals('dd', $data['LEVEL-0']['LEVEL-1']['LEVEL-2b'][0]['attributes']['bb']);
$this->assertEquals('ghi', $data['LEVEL-0']['LEVEL-1']['LEVEL-2b'][1]['value']);
$this->assertEquals('35', $data['LEVEL-0']['LEVEL-1']['LEVEL-2b'][1]['attributes']['aa']);
$xml = $helper->arrayToXml($data);
$save = $helper->xmlToArray($xml);
$this->assertEquals($data, $save);
}
/*
* @covers XmlHelper
*/
function test_3() {
$xmlString = file_get_contents("$this->testData/55521_total_only.xml");
$helper = new XmlHelper();
$helper->setCaseFolding(false);
$helper->setTrimText(true);
$data = $helper->xmlToArray ($xmlString);
// print_r($data);
$this->assertType('array', $data);
$this->assertEquals('USD', $data['Order']['attributes']['currency']);
$this->assertEquals('rogue-55521', $data['Order']['attributes']['id']);
$this->assertEquals('166.95', $data['Order']['Total']['Line'][0]['value']);
$this->assertEquals(8.32, $data['Order']['Total']['Line'][1]['value']);
$this->assertEquals(24, $data['Order']['Total']['Line'][2]['InnerLine']['value']);
$this->assertEquals(175.27, $data['Order']['Total']['Line'][3]['value']);
$this->assertEquals('Subtotal', $data['Order']['Total']['Line'][0]['attributes']['type']);
$this->assertEquals('Shipping', $data['Order']['Total']['Line'][1]['attributes']['type']);
$this->assertEquals('Tax', $data['Order']['Total']['Line'][2]['attributes']['type']);
$this->assertEquals('Total', $data['Order']['Total']['Line'][3]['attributes']['type']);
$xml = $helper->arrayToXml($data);
$save = $helper->xmlToArray($xml);
$this->assertEquals($data, $save);
}
/*
* @covers XmlHelper
*/
function test_2() {
$xmlString = file_get_contents("$this->testData/one_element.xml");
$helper = new XmlHelper();
$helper->setCaseFolding(false);
$helper->setTrimText(true);
$data = $helper->xmlToArray ($xmlString);
// print_r($data);
$this->assertEquals(123, $data['test']['value']);
$xml = $helper->arrayToXml($data);
$this->assertTrue(strpos($xml, '<test>123</test>') > 0);
$save = $helper->xmlToArray($xml);
$this->assertEquals($data, $save);
}
/*
* @covers XmlHelper
*/
function test_1() {
$xmlString = file_get_contents("$this->testData/55521_item_only.xml");
$helper = new XmlHelper();
$helper->setCaseFolding(false);
$helper->setTrimText(true);
$data = $helper->xmlToArray ($xmlString);
$save = $data;
// print_r($data);
$this->assertEquals('nvnhmplat6', $data[Order][Item][0][Id]['value']);
$this->assertEquals('NOURL', $data[Order][Item][0][Url]['value']);
$this->assertEquals('nvnhat6', $data[Order][Item][1][Id]['value']);
$this->assertEquals('Selection', $data[Order][Item][1][Option]['attributes']['name']);
$xml = $helper->arrayToXml($data);
$data = $helper->xmlToArray($xml);
$this->assertEquals($save, $data);
$this->assertEquals('nvnhmplat6', $data[Order][Item][0][Id]['value']);
$this->assertEquals('NOURL', $data[Order][Item][0][Url]['value']);
$this->assertEquals('nvnhat6', $data[Order][Item][1][Id]['value']);
$this->assertEquals('Selection', $data[Order][Item][1][Option]['attributes']['name']);
// print_r($data);
}
}
?>
|