/** * */ public function testItWillThrowExceptionIfNoMappingsAreProvided() { $mapper = new Mapper(); $mapper->setClassMap([]); $this->setExpectedException(TransformerException::class); (new HalSerializer(new XmlTransformer($mapper)))->serialize(new \stdClass()); }
public function testItWillSerializeObjectsNotAddedInMappings() { $stdClass = new \stdClass(); $stdClass->userName = '******'; $stdClass->commentBody = 'Hello World'; $comment = new SimpleComment(1, $stdClass); $mapping = new Mapping(SimpleComment::class, '/comment/{id}', ['id']); $mapper = new Mapper(); $mapper->setClassMap([$mapping->getClassName() => $mapping]); $jsonApiJsonApiSerializer = new JsonApiTransformer($mapper); $expected = <<<JSON { "data":{ "type":"comment", "id":"1", "attributes":{ "created_at":{ "date":"2015-11-20 21:43:31.000000", "timezone_type":3, "timezone":"Europe/Madrid" }, "comment":{ "user_name":"Joe", "comment_body":"Hello World" }, "id": 1 }, "links":{ "self":{ "href":"/comment/1" } } }, "links": { "self": { "href": "/comment/1" } }, "jsonapi":{ "version":"1.0" } } JSON; $this->assertEquals(\json_decode($expected, true), \json_decode((new JsonApiSerializer($jsonApiJsonApiSerializer))->serialize($comment), true)); }
public function testItCanSetClassMap() { $mapper = new Mapper(); $mapper->setClassMap([]); $this->assertEquals([], $mapper->getClassMap()); }
/** * @param Mapper $mapper */ public function __construct(Mapper $mapper) { $this->mappings = $mapper->getClassMap(); }
public function testItIfFilteringOutKeys() { $post = $this->createSimplePost(); $postMapping = new Mapping(SimplePost::class, '/post/{postId}', ['postId']); $postMapping->setFilterKeys(['body']); $mapper = new Mapper(); $mapper->setClassMap([$postMapping->getClassName() => $postMapping]); $transformer = new JsonTransformer($mapper); $expected = <<<JSON { "post_id": 1, "title": "post title", "body": "post body", "author_id": 2, "comments": [ { "comment_id": 10, "comment": "I am writing comment no. 1", "user_id": "User 5", "created_at": "2015-07-19T12:48:00+02:00" }, { "comment_id": 20, "comment": "I am writing comment no. 2", "user_id": "User 10", "created_at": "2015-07-20T12:48:00+02:00" }, { "comment_id": 30, "comment": "I am writing comment no. 3", "user_id": "User 15", "created_at": "2015-07-21T12:48:00+02:00" }, { "comment_id": 40, "comment": "I am writing comment no. 4", "user_id": "User 20", "created_at": "2015-07-22T12:48:00+02:00" }, { "comment_id": 50, "comment": "I am writing comment no. 5", "user_id": "User 25", "created_at": "2015-07-23T12:48:00+02:00" } ], "_links":{ "self":{ "href":"/post/1" } } } JSON; $this->assertEquals(\json_decode($expected, true), \json_decode((new HalSerializer($transformer))->serialize($post), true)); }