public function testInstance() { /** @var \Mockery\Mock|\Hitmeister\Component\Api\Transfers\UnitAddTransfer $transfer */ $transfer = \Mockery::mock('\\Hitmeister\\Component\\Api\\Transfers\\UnitAddTransfer'); $transfer->shouldReceive('toArray')->once()->andReturn(['id_item' => 123, 'ean' => 'ean']); $post = new Post($this->transport); $post->setTransfer($transfer); $this->assertInstanceOf('\\Hitmeister\\Component\\Api\\Transfers\\UnitAddTransfer', $post->getTransfer()); $this->assertEquals([], $post->getParamWhiteList()); $this->assertEquals('POST', $post->getMethod()); $this->assertEquals('units/', $post->getURI()); $body = $post->getBody(); $this->assertArrayHasKey('id_item', $body); $this->assertArrayHasKey('ean', $body); }
/** * @param array|UnitAddTransfer $data * @return int */ public function post($data) { if (!$data instanceof UnitAddTransfer) { if (!is_array($data)) { throw new InvalidArgumentException('Data argument should be an array of instance of UnitAddTransfer'); } $data = UnitAddTransfer::make($data); } $endpoint = new Post($this->getTransport()); $endpoint->setTransfer($data); $resultRequest = $endpoint->performRequest(); return Response::extractId($resultRequest, '/units/%d/'); }