/** * __toString() test */ public function test__toString() { $this->_fault->setCode(1000); $this->_fault->setMessage('Fault message'); $xml = $this->_fault->__toString(); try { $sx = new SimpleXMLElement($xml); } catch (Exception $e) { $this->fail('Unable to parse generated XML'); } $this->assertTrue($sx->fault ? true : false, $xml); $this->assertTrue($sx->fault->value ? true : false, $xml); $this->assertTrue($sx->fault->value->struct ? true : false, $xml); $count = 0; foreach ($sx->fault->value->struct->member as $member) { $count++; $this->assertTrue($member->name ? true : false, $xml); $this->assertTrue($member->value ? true : false, $xml); if ('faultCode' == (string) $member->name) { $this->assertTrue($member->value->int ? true : false, $xml); $this->assertEquals(1000, (int) $member->value->int, $xml); } if ('faultString' == (string) $member->name) { $this->assertTrue($member->value->string ? true : false, $xml); $this->assertEquals('Fault message', (string) $member->value->string, $xml); } } $this->assertEquals(2, $count, $xml); }
/** * __toString() test */ public function test__toString() { $this->_fault->setCode(1000); $this->_fault->setMessage('Fault message'); $xml = $this->_fault->__toString(); $this->_testXmlFault($xml); }
public function testGettingAllMethodSignaturesDegradesToLooping() { // system.listMethods() will return ['foo', 'bar'] $whatListMethodsReturns = array('foo', 'bar'); $response = $this->getServerResponseFor($whatListMethodsReturns); $this->httpAdapter->setResponse($response); // system.multicall() will return a fault $fault = new Zend_XmlRpc_Fault(7, 'bad method'); $xml = $fault->__toString(); $response = $this->makeHttpResponseFrom($xml); $this->httpAdapter->addResponse($response); // system.methodSignature('foo') will return [['int'], ['int', 'string']] $fooSignatures = array(array('int'), array('int', 'string')); $response = $this->getServerResponseFor($fooSignatures); $this->httpAdapter->addResponse($response); // system.methodSignature('bar') will return [['boolean']] $barSignatures = array(array('boolean')); $response = $this->getServerResponseFor($barSignatures); $this->httpAdapter->addResponse($response); $i = $this->xmlrpcClient->getIntrospector(); $expected = array('foo' => $fooSignatures, 'bar' => $barSignatures); $this->assertEquals($expected, $i->getSignatureForEachMethod()); $request = $this->xmlrpcClient->getLastRequest(); $this->assertEquals('system.methodSignature', $request->getMethod()); }