From 679eacd661962f353a809ab66e83a86233f28bcc Mon Sep 17 00:00:00 2001 From: gggeek Date: Wed, 20 Jan 2016 23:28:09 +0000 Subject: [PATCH] Add basic test for arrayaccess and countable --- tests/1ParsingBugsTest.php | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/tests/1ParsingBugsTest.php b/tests/1ParsingBugsTest.php index d9a432a5..f32bd2e5 100644 --- a/tests/1ParsingBugsTest.php +++ b/tests/1ParsingBugsTest.php @@ -554,7 +554,7 @@ public function testNilvalue() $this->assertequals(2, $r->faultCode()); } - public function TestLocale() + public function testLocale() { $locale = setlocale(LC_NUMERIC, 0); /// @todo on php 5.3/win setting locale to german does not seem to set decimal separator to comma... @@ -572,4 +572,31 @@ public function TestLocale() $this->markTestSkipped('did not find a locale which sets decimal separator to comma'); } } + + public function testArrayAccess() + { + $v1 = new xmlrpcval(array(new xmlrpcval('one'), new xmlrpcval('two')), 'array'); + $this->assertequals(1, count($v1)); + $out = array('me' => array(), 'mytype' => 2, '_php_class' => null); + foreach($v1 as $key => $val) + { + $expected = each($out); + $this->assertequals($expected['key'], $key); + if (gettype($expected['value']) == 'array') { + $this->assertequals('array', gettype($val)); + } else { + $this->assertequals($expected['value'], $val); + } + } + + $v2 = new \PhpXmlRpc\Value(array(new \PhpXmlRpc\Value('one'), new \PhpXmlRpc\Value('two')), 'array'); + $this->assertequals(2, count($v2)); + $out = array(0 => 'object', 1 => 'object'); + foreach($v2 as $key => $val) + { + $expected = each($out); + $this->assertequals($expected['key'], $key); + $this->assertequals($expected['value'], gettype($val)); + } + } }