Example #1
0
 /**
  * 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());
    }