/** * @covers Intacct\FieldTypes\Record::setFields * @expectedException InvalidArgumentException * @expectedExceptionMessage "456INVALID" is not a valid name for an XML element */ public function testConstructFailureInvalidFieldName() { $xml = new XMLWriter(); $xml->openMemory(); $xml->setIndent(true); $xml->setIndentString(' '); $xml->startDocument(); $record = new Record(); $record->setObjectName('CLASS'); $record->setFields(['CLASSID' => 'UT01', 'NAME' => 'Unit Test 01', '456INVALID' => 'unit test']); $record->writeXml($xml); }
/** * @covers Intacct\Functions\Common\Update::setRecords * @covers Intacct\Functions\Common\Update::writeXml */ public function testWriteXmlOwnedObject() { $expected = <<<EOF <?xml version="1.0" encoding="UTF-8"?> <function controlid="unittest"> <update> <GLBATCH> <RECORDNO>1234</RECORDNO> <JOURNAL>GJ</JOURNAL> <BATCH_DATE>06/30/2016</BATCH_DATE> <BATCH_TITLE>test</BATCH_TITLE> <ENTRIES> <GLENTRY> <ACCOUNTNO>1000</ACCOUNTNO> <TR_TYPE>1</TR_TYPE> <TRX_AMOUNT>10.12</TRX_AMOUNT> </GLENTRY> <GLENTRY> <ACCOUNTNO>2000</ACCOUNTNO> <TR_TYPE>-1</TR_TYPE> <TRX_AMOUNT>10.12</TRX_AMOUNT> <ALLOCATION>Custom</ALLOCATION> <SPLIT> <AMOUNT>600</AMOUNT> </SPLIT> <SPLIT> <AMOUNT>400</AMOUNT> </SPLIT> </GLENTRY> </ENTRIES> </GLBATCH> </update> </function> EOF; $entry1 = new Record(); $entry1->setObjectName('GLENTRY'); $entry1->setFields(['ACCOUNTNO' => '1000', 'TR_TYPE' => '1', 'TRX_AMOUNT' => 10.12]); $split1 = new Record(); $split1->setObjectName('SPLIT'); $split1->setFields(['AMOUNT' => 600]); $split2 = new Record(); $split2->setObjectName('SPLIT'); $split2->setFields(['AMOUNT' => 400]); $entry2 = new Record(); $entry2->setObjectName('GLENTRY'); $entry2->setFields(['ACCOUNTNO' => '2000', 'TR_TYPE' => '-1', 'TRX_AMOUNT' => 10.12, 'ALLOCATION' => 'Custom', $split1, $split2]); $batch = new Record(); $batch->setObjectName('GLBATCH'); $batch->setFields(['RECORDNO' => 1234, 'JOURNAL' => 'GJ', 'BATCH_DATE' => new DateType('2016-06-30'), 'BATCH_TITLE' => 'test', 'ENTRIES' => [$entry1, $entry2]]); $xml = new XMLWriter(); $xml->openMemory(); $xml->setIndent(true); $xml->setIndentString(' '); $xml->startDocument(); $update = new Update('unittest'); $update->setRecords([$batch]); $update->writeXml($xml); $this->assertXmlStringEqualsXmlString($expected, $xml->flush()); }