/** * Constructs a new XML-RPC client view * @param zibo\xmlrpc\form\ClientForm $form The form of the client * @param zibo\library\xmlrpc\Request $request * @param zibo\library\xmlrpc\Response $response * @param string $responseString * @param float $time Time spent on the request in seconds * @return null */ public function __construct(ClientForm $form, Request $request = null, Response $response = null, $responseString = null, $time = null) { parent::__construct(self::TEMPLATE); $this->set('form', $form); $this->set('time', $time); $this->set('requestString', null); $this->set('responseString', null); if ($request) { $this->set('requestString', String::addLineNumbers(trim($request->getXmlString()))); } if ($responseString && !$response) { $this->set('responseString', String::addLineNumbers(trim($responseString))); } elseif ($response) { $this->set('responseString', String::addLineNumbers(trim($response->getXmlString()))); $errorCode = $response->getErrorCode(); if ($errorCode) { $this->set('error', $errorCode . ': ' . $response->getErrorMessage()); } else { $parser = new ParameterParser(); $result = $parser->unparse($response->getValue(), true); $this->set('result', $result); } } $this->addStyle(self::STYLE); }
private function performTestConstruct($xml, $expected) { $dom = new DOMDocument('1.0', 'utf-8'); $dom->preserveWhiteSpace = false; $dom->loadXML($xml); $response = new Response($dom->documentElement); $this->assertEquals($expected, $response->getValue()); return $response; }
/** * Gets the result value from the provided response * @param Response $response Response to get the value from * @return mixed The value of the provided response */ protected function getValueFromResponse(Response $response) { if (!$response->getErrorCode()) { return array($response->getValue()); } $error = array('faultCode' => $response->getErrorCode(), 'faultString' => $response->getErrorMessage()); return $error; }