1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- <?php
- declare(strict_types=1);
- /**
- * @copyright 2020 Daniel Kesselberg <mail@danielkesselberg.de>
- *
- * @author 2020 Daniel Kesselberg <mail@danielkesselberg.de>
- *
- * @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 <http://www.gnu.org/licenses/>.
- *
- */
- 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(
- "<?xml version=\"1.0\"?>\n<hello>hello</hello><information test=\"some data\"><someElement>withAttribute</someElement></information><element>value without key</element><object/>\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(
- "<?xml version=\"1.0\"?>\n<hello>hello</hello><information test=\"some data\"><someElement>withAttribute</someElement></information><element>value without key</element><object/>\n",
- $writer->outputMemory(true)
- );
- }
- }
|