/** * 카테고리 아이템에 속하는 대상 아이디 목록을 반환 * * @param CategoryItemEntity $item item object * @return array */ public function getTargetIds(CategoryItemEntity $item) { $items = $this->itemRepo->fetchDesc($item, 0, false); $ids = []; foreach ($items as $item) { $ids[] = $item->id; } return $this->itemRepo->fetchTargetIdsByIds($ids); }
public function testFetchTargetIdsByIds() { list($conn, $query) = $this->getMocks(); $instance = new CategoryItemRepository($conn); $conn->shouldReceive('table')->andReturn($query); $query->shouldReceive('whereIn')->once()->with('itemId', [1, 2, 3])->andReturnSelf(); $query->shouldReceive('get')->once()->andReturn([(object) ['targetId' => 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxa'], (object) ['targetId' => 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxb'], (object) ['targetId' => 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxc'], (object) ['targetId' => 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxd'], (object) ['targetId' => 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxe'], (object) ['targetId' => 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxf']]); $targetIds = $instance->fetchTargetIdsByIds([1, 2, 3]); $this->assertEquals(['xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxa', 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxb', 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxc', 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxd', 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxe', 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxf'], $targetIds); }