示例#1
0
 /**
  *
  */
 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();
 }
示例#5
0
    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));
    }