/** * @expectedException \GoIntegro\Hateoas\JsonApi\Serializer\InvalidFieldException */ public function testSerializingWithUnknownFieldThrowsException() { /* Given... (Fixture) */ $metadata = Stub::makeEmpty('GoIntegro\\Hateoas\\Metadata\\Resource\\ResourceMetadata', ['type' => 'type', 'subtype' => 'users', 'isRelationship' => function () { return false; }]); $entityResource = Stub::makeEmpty('GoIntegro\\Hateoas\\JsonApi\\EntityResource', ['id' => '10', 'getMetadata' => function () use($metadata) { return $metadata; }, 'isFieldBlacklisted' => function () { return false; }, 'callGetter' => function () { throw new \Exception(); }]); $serializer = new ResourceObjectSerializer($entityResource, self::buildSecurityContext(), ['id']); /* When... (Action) */ $serializer->serialize(); }
/** * @param DocumentResource $resource * @return array */ protected function serializeResourceObject(EntityResource $resource) { $metadata = $resource->getMetadata(); $fields = isset($this->document->sparseFields[$metadata->type]) ? $this->document->sparseFields[$metadata->type] : []; $serializer = new ResourceObjectSerializer($resource, $this->securityContext, $fields); return $serializer->serialize(); }
/** * @param DocumentResource $resource * @return array */ protected function serializeResourceObject(DocumentResource $resource, array $fields = []) { $serializer = new Serializer\ResourceObjectSerializer($resource, $this->securityContext, $fields); return $serializer->serialize(); }