From 004fcbbcc7609ca83807f2e38967ef54f469bf72 Mon Sep 17 00:00:00 2001 From: Bernhard Posselt Date: Sat, 23 Jul 2016 21:24:54 +0200 Subject: Move to new directory structure --- tests/Unit/Controller/EntityApiSerializerTest.php | 116 ++++++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 tests/Unit/Controller/EntityApiSerializerTest.php (limited to 'tests/Unit/Controller/EntityApiSerializerTest.php') diff --git a/tests/Unit/Controller/EntityApiSerializerTest.php b/tests/Unit/Controller/EntityApiSerializerTest.php new file mode 100644 index 000000000..80752889d --- /dev/null +++ b/tests/Unit/Controller/EntityApiSerializerTest.php @@ -0,0 +1,116 @@ + + * @author Bernhard Posselt + * @copyright Alessandro Cosentino 2012 + * @copyright Bernhard Posselt 2012, 2014 + */ + +namespace OCA\News\Controller; + + +use \OCP\AppFramework\Http\Response; +use \OCP\AppFramework\Db\Entity; + +use \OCA\News\Db\Item; + +class TestEntity extends Entity { + +} + + +class EntityApiSerializerTest extends \PHPUnit_Framework_TestCase { + + + public function testSerializeSingle() { + $item = new Item(); + $item->setUnread(); + + $serializer = new EntityApiSerializer('items'); + $result = $serializer->serialize($item); + + $this->assertTrue($result['items'][0]['unread']); + } + + + public function testSerializeMultiple() { + $item = new Item(); + $item->setUnread(); + + $item2 = new Item(); + $item2->setRead(); + + $serializer = new EntityApiSerializer('items'); + + $result = $serializer->serialize([$item, $item2]); + + $this->assertTrue($result['items'][0]['unread']); + $this->assertFalse($result['items'][1]['unread']); + } + + + public function testResponseNoChange() { + $response = new Response(); + $serializer = new EntityApiSerializer('items'); + + $result = $serializer->serialize($response); + + $this->assertEquals($response, $result); + } + + + public function testCompleteArraysTransformed() { + $item = new Item(); + $item->setUnread(); + + $item2 = new Item(); + $item2->setRead(); + + $serializer = new EntityApiSerializer('items'); + + $in = [ + 'items' => [$item, $item2], + 'test' => 1 + ]; + + $result = $serializer->serialize($in); + + $this->assertTrue($result['items'][0]['unread']); + $this->assertFalse($result['items'][1]['unread']); + $this->assertEquals(1, $result['test']); + } + + + public function testNoEntityNoChange() { + $serializer = new EntityApiSerializer('items'); + + $in = [ + 'items' => ['hi', '2'], + 'test' => 1 + ]; + + $result = $serializer->serialize($in); + + $this->assertEquals('hi', $result['items'][0]); + $this->assertEquals('2', $result['items'][1]); + $this->assertEquals(1, $result['test']); + } + + + public function testEntitiesNoChange() { + $serializer = new EntityApiSerializer('items'); + + $in = [ + 'items' => [new TestEntity()] + ]; + + $result = $serializer->serialize($in); + + $this->assertEquals($in, $result); + } +} \ No newline at end of file -- cgit v1.2.3