/** * Builds the list of the torrents from the API response. * * @param array $response * @return TorrentSearchResultInterface */ public function extractTorrentsFromApiResponse(array $response) { $torrentSearchResult = new TorrentSearchResult(); $torrentSearchResult->setQuery($response['query']); $torrentSearchResult->setTotal($response['total']); $torrentSearchResult->setOffset($response['offset']); $torrentSearchResult->setLimit($response['limit']); $torrents = []; foreach ($response['torrents'] as $rawTorrentData) { $torrent = new Torrent(); $category = new Category(); $owner = new User(); $category->setId($rawTorrentData['category']); $category->setName($rawTorrentData['categoryname']); $owner->setId($rawTorrentData['owner']); $owner->setUploadedData($rawTorrentData['username']); $torrent->setId($rawTorrentData['id']); $torrent->setName($rawTorrentData['name']); $torrent->setCategory($category); $torrent->setNumberOfLeechers($rawTorrentData['leechers']); $torrent->setNumberOfSeeders($rawTorrentData['seeders']); $torrent->setNumberOfComments($rawTorrentData['comments']); $torrent->setIsVerified($rawTorrentData['isVerified']); $torrent->setAdditionDate(new \DateTime($rawTorrentData['added'])); $torrent->setSize($rawTorrentData['size']); $torrent->setTimesCompleted($rawTorrentData['times_completed']); $torrents[] = $torrent; } $torrentSearchResult->setTorrents($torrents); return $torrentSearchResult; }
public function testInstance() { $torrentSearchResult = new TorrentSearchResult(); $query = 'avatar'; $offset = 10; $limit = 100; $total = 25; $torrents = []; for ($i = 0; $i < 5; $i++) { $torrents[] = new Torrent(); } $torrentSearchResult->setQuery($query); $torrentSearchResult->setOffset($offset); $torrentSearchResult->setLimit($limit); $torrentSearchResult->setTotal($total); $torrentSearchResult->setTorrents($torrents); $this->assertSame($query, $torrentSearchResult->getQuery()); $this->assertSame($offset, $torrentSearchResult->getOffset()); $this->assertSame($limit, $torrentSearchResult->getLimit()); $this->assertSame($total, $torrentSearchResult->getTotal()); $this->assertSame($torrents, $torrentSearchResult->getTorrents()); }