public function testInstance() { /** @var \Mockery\Mock|\Hitmeister\Component\Api\Transfers\UnitUpdateTransfer $transfer */ $transfer = \Mockery::mock('\\Hitmeister\\Component\\Api\\Transfers\\UnitUpdateTransfer'); $transfer->shouldReceive('toArray')->once()->andReturn(['condition' => 'new']); $update = new Update($this->transport); $update->setId(10); $update->setTransfer($transfer); $this->assertInstanceOf('\\Hitmeister\\Component\\Api\\Transfers\\UnitUpdateTransfer', $update->getTransfer()); $this->assertEquals(10, $update->getId()); $this->assertEquals([], $update->getParamWhiteList()); $this->assertEquals('PATCH', $update->getMethod()); $this->assertEquals('units/10/', $update->getURI()); $body = $update->getBody(); $this->assertArrayHasKey('condition', $body); }
/** * @param int $id * @param array|UnitUpdateTransfer $data * @return bool */ public function update($id, $data) { if (!$data instanceof UnitUpdateTransfer) { if (!is_array($data)) { throw new InvalidArgumentException('Data argument should be an array of instance of UnitUpdateTransfer'); } $data = UnitUpdateTransfer::make($data); } $endpoint = new Update($this->getTransport()); $endpoint->setId($id); $endpoint->setTransfer($data); try { $result = $endpoint->performRequest(); } catch (ResourceNotFoundException $e) { return false; } return $result['status'] == 204; }