public function testDecide() { $this->transport->shouldReceive('performRequest')->once()->andReturn(['json' => [['id_category' => 12, 'name' => 'Category Name']]]); $namespace = new CategoriesNamespace($this->transport); $result = $namespace->decide(CategoryDecideTransfer::make(['item' => ['title' => 'iphone', 'description' => 'iphone 5'], 'price' => 500000])); $this->assertTrue(is_array($result)); $this->assertEquals(1, count($result)); $this->assertInstanceOf('\\Hitmeister\\Component\\Api\\Transfers\\CategoryTransfer', $result[0]); }
/** * @param array|CategoryDecideTransfer $data * @return array|CategoryTransfer[] */ public function decide($data) { if (!$data instanceof CategoryDecideTransfer) { if (!is_array($data)) { throw new InvalidArgumentException('Data argument should be an array of instance of CategoryDecideTransfer'); } $data = CategoryDecideTransfer::make($data); } $endpoint = new Decide($this->getTransport()); $endpoint->setTransfer($data); $resultRequest = $endpoint->performRequest(); Response::checkBody($resultRequest); $result = []; foreach ($resultRequest['json'] as $item) { $result[] = CategoryTransfer::make($item); } return $result; }