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 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(); $expected = $alias->xml(); assert($actual === $expected, __($actual, $expected)); }); }); }); describe('FluidContext', function () { it('should be iterable returning the represented DOMNode objects', function () { $xml = new FluidXml(); $cx = $xml->appendChild(['head', 'body'], true); $actual = $cx; assert_is_a($actual, \Iterator::class); $representation = []; foreach ($cx as $k => $v) { $actual = \is_int($k);