/** * @inheritdoc */ public function putRelationalCollection(Repository $repository, ReverseTransformer $transformer) { $payload = $this->factory->getRequestPayload()->getIterator(); $body = $transformer->reverseTransform($payload); $collection = $this->relational->addRelationalIdsToEachItemInCollection($body); $collection = $this->relational->addTimestampsToEachItemInCollection($collection); $repository->putRelations($this->relational->table(), $this->relational->relationIds(), $collection); }
function it_puts_a_collection_to_a_relation(Repository $repository, Response $response, Payload $payload, Factory $factory, RepresentationCreator $responseCreator, ReverseTransformer $transformer, Relational $relational) { $table = 'image_product_site'; $columnsValues = [['image_id' => 5, 'product_id' => 7, 'site_id' => 10], ['image_id' => 7, 'product_id' => 7, 'site_id' => 10]]; $columnsValuesWithTimestamps = $this->addTimestampsToCollection($columnsValues); $rawBody = [['id' => 5], ['id', 7]]; $body = [['image_id' => 5], ['image_id', 7]]; $relationIds = ['site_id' => 10, 'product_id' => 7]; $relational->relationIds()->shouldBeCalled()->willReturn($relationIds); $factory->getRequestPayload()->shouldBeCalled()->willReturn($payload); $payload->getIterator()->shouldBeCalled()->willReturn($rawBody); $transformer->reverseTransform($rawBody)->shouldBeCalled()->willReturn($body); $relational->addRelationalIdsToEachItemInCollection($body)->shouldBeCalled()->willReturn($columnsValues); $relational->addTimestampsToEachItemInCollection($columnsValues)->shouldBeCalled()->willReturn($columnsValuesWithTimestamps); $relational->table()->shouldBeCalled()->willReturn($table); $repository->putRelations($table, $relationIds, $columnsValuesWithTimestamps)->shouldBeCalled(); $this->putRelationalCollection($repository, $transformer); }