/** * Generate the request XML writer * * @return XMLWriter */ public function writeXml() { $xml = new XMLWriter(); $xml->openMemory(); $xml->setIndent(false); $xml->startDocument(self::XML_VERSION, $this->encoding); $xml->startElement('request'); $this->controlBlock->writeXml($xml); //create control block $this->operationBlock->writeXml($xml); //create operation block $xml->endElement(); //request return $xml; }
/** * @covers Intacct\Xml\Request\OperationBlock::__construct * @covers Intacct\Xml\Request\OperationBlock::setTransaction * @covers Intacct\Xml\Request\OperationBlock::writeXml * @covers Intacct\Xml\Request\OperationBlock::getTransaction */ public function testWriteXmlTransaction() { $config = ['session_id' => 'fakesession..', 'transaction' => true]; $contentBlock = new Content(); $func = new ApiSessionCreate('unittest'); $contentBlock->append($func); $expected = <<<EOF <?xml version="1.0" encoding="UTF-8"?> <operation transaction="true"> <authentication> <sessionid>fakesession..</sessionid> </authentication> <content> <function controlid="unittest"> <getAPISession/> </function> </content> </operation> EOF; $xml = new XMLWriter(); $xml->openMemory(); $xml->setIndent(true); $xml->setIndentString(' '); $xml->startDocument(); $operation = new OperationBlock($config, $contentBlock); $operation->writeXml($xml); $this->assertXmlStringEqualsXmlString($expected, $xml->flush()); }