$alias = new FluidXml(); $alias->insertSiblingAfter('sibling1', true)->insertSiblingAfter(['sibling2', 'sibling3'], ['class' => 'sibling']); $actual = $xml->xml(); $expected = $alias->xml(); \assert($actual === $expected, __($actual, $expected)); }); }); describe('.attr', function () { it('should be fluid', function () { assert_is_fluid('attr', 'a', 'b'); }); it('should behave like .setAttribute', function () { $xml = new FluidXml(); $xml->setAttribute('attr1', 'Attr1 Value')->setAttribute(['attr2' => 'Attr2 Value', 'attr3' => 'Attr3 Value'])->appendChild('child', true)->setAttribute('attr4', 'Attr4 Value')->setAttribute(['attr5' => 'Attr5 Value', 'attr6' => 'Attr6 Value']); $alias = new FluidXml(); $alias->attr('attr1', 'Attr1 Value')->attr(['attr2' => 'Attr2 Value', 'attr3' => 'Attr3 Value'])->appendChild('child', true)->attr('attr4', 'Attr4 Value')->attr(['attr5' => 'Attr5 Value', 'attr6' => 'Attr6 Value']); $actual = $xml->xml(); $expected = $alias->xml(); \assert($actual === $expected, __($actual, $expected)); }); }); describe('.text', function () { it('should be fluid', function () { assert_is_fluid('text', 'a'); }); it('should behave like .setText', function () { $xml = new FluidXml(); $xml->setText('Text1')->appendChild('child', true)->setText('Text2'); $alias = new FluidXml(); $alias->text('Text1')->appendChild('child', true)->text('Text2'); $actual = $xml->xml();
assert_equal_xml($xml, $expected); $xml = new FluidXml(); $xml->addChild('child', true)->setAttribute(['attr1' => 'Attr1 Value', 'attr2' => 'Attr2 Value'])->setAttribute('attr1', 'Attr1 New Value'); $expected = "<doc>\n" . " <child attr1=\"Attr1 New Value\" attr2=\"Attr2 Value\"/>\n" . "</doc>"; assert_equal_xml($xml, $expected); }); }); describe('.attr()', function () { it('should be fluid', function () { assert_is_fluid('attr', 'a', 'b'); }); it('should behave like .setAttribute()', function () { $xml = new FluidXml(); $xml->setAttribute('attr1', 'Value 1')->setAttribute('attr2')->setAttribute(['attr3' => 'Value 3', 'attr4' => 'Value 4'])->setAttribute(['attr5', 'attr6'])->addChild('child', true)->setAttribute('attr1', 'Value 1')->setAttribute('attr2')->setAttribute(['attr3' => 'Value 3', 'attr4' => 'Value 4'])->setAttribute(['attr5', 'attr6']); $alias = new FluidXml(); $alias->attr('attr1', 'Value 1')->attr('attr2')->attr(['attr3' => 'Value 3', 'attr4' => 'Value 4'])->attr(['attr5', 'attr6'])->addChild('child', true)->attr('attr1', 'Value 1')->attr('attr2')->attr(['attr3' => 'Value 3', 'attr4' => 'Value 4'])->attr(['attr5', 'attr6']); $actual = $xml->xml(); $expected = $alias->xml(); \assert($actual === $expected, __($actual, $expected)); }); }); describe('.setText()', function () { it('should be fluid', function () { assert_is_fluid('setText', 'a'); }); it('should set/change the text of the root node', function () { $xml = new FluidXml(); $xml->setText('First Text')->setText('Second Text'); $expected = "<doc>Second Text</doc>"; assert_equal_xml($xml, $expected); });