* * @author 2020 Daniel Kesselberg * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see . * */ namespace Test\AppFramework\Middleware; use OC\AppFramework\OCS\BaseResponse; class ArrayValue implements \JsonSerializable { private $array; public function __construct(array $array) { $this->array = $array; } public function jsonSerialize(): mixed { return $this->array; } } class BaseResponseTest extends \Test\TestCase { public function testToXml(): void { /** @var BaseResponse $response */ $response = $this->createMock(BaseResponse::class); $writer = new \XMLWriter(); $writer->openMemory(); $writer->setIndent(false); $writer->startDocument(); $data = [ 'hello' => 'hello', 'information' => [ '@test' => 'some data', 'someElement' => 'withAttribute', ], 'value without key', 'object' => new \stdClass(), ]; $this->invokePrivate($response, 'toXml', [$data, $writer]); $writer->endDocument(); $this->assertEquals( "\nhellowithAttributevalue without key\n", $writer->outputMemory(true) ); } public function testToXmlJsonSerializable(): void { /** @var BaseResponse $response */ $response = $this->createMock(BaseResponse::class); $writer = new \XMLWriter(); $writer->openMemory(); $writer->setIndent(false); $writer->startDocument(); $data = [ 'hello' => 'hello', 'information' => new ArrayValue([ '@test' => 'some data', 'someElement' => 'withAttribute', ]), 'value without key', 'object' => new \stdClass(), ]; $this->invokePrivate($response, 'toXml', [$data, $writer]); $writer->endDocument(); $this->assertEquals( "\nhellowithAttributevalue without key\n", $writer->outputMemory(true) ); } }