public function testSerializeLinks() { $links = array(new Link('self', '/users/42', array('awesome' => 'exactly')), new Link('foo', '/bar'), new Link('foo', '/baz'), new Link('bar', '/foo'), new Link('bar', '/baz'), new Link('bar', '/buzz')); $expectedSerializedLinks = array('self' => array('href' => '/users/42', 'awesome' => 'exactly'), 'foo' => array(array('href' => '/bar'), array('href' => '/baz')), 'bar' => array(array('href' => '/foo'), array('href' => '/baz'), array('href' => '/buzz'))); $jsonSerializationVisitorProphecy = $this->prophesize('JMS\\Serializer\\JsonSerializationVisitor'); $jsonSerializationVisitorProphecy->addData('_links', $expectedSerializedLinks)->shouldBeCalledTimes(1); $jsonHalSerializer = new JsonHalSerializer(); $jsonHalSerializer->serializeLinks($links, $jsonSerializationVisitorProphecy->reveal()); }
public function testSerializeCuriesWithMultipleEntriesShouldBeAnArray() { $links = array(new Link('self', '/users/42'), new Link('curies', '/rels/{rel}', array('name' => 'p')), new Link('curies', '/foo/rels/{rel}', array('name' => 'foo'))); $expectedSerializedLinks = array('self' => array('href' => '/users/42'), 'curies' => array(array('href' => '/rels/{rel}', 'name' => 'p'), array('href' => '/foo/rels/{rel}', 'name' => 'foo'))); $contextProphecy = $this->prophesize('JMS\\Serializer\\SerializationContext'); $jsonSerializationVisitorProphecy = $this->prophesize('JMS\\Serializer\\JsonSerializationVisitor'); $jsonSerializationVisitorProphecy->addData('_links', $expectedSerializedLinks)->shouldBeCalledTimes(1); $jsonHalSerializer = new JsonHalSerializer(); $jsonHalSerializer->serializeLinks($links, $jsonSerializationVisitorProphecy->reveal(), $contextProphecy->reveal()); }