public function testIsPerformingSearch()
 {
     $mockHandler = new MockHandler([new Response(200, [], $this->getMockRawResult())]);
     $adapter = new EzTvAdapter();
     $adapter->setHttpClient(new Client(['handler' => $mockHandler]));
     $result1 = new SearchResult();
     $result1->setName('Marvels Agents of S H I E L D S03E13 HDTV x264-FLEET');
     $result1->setTorrentUrl('https://zoink.ch/torrent/Marvels.Agents.of.S.H.I.E.L.D.S03E13.HDTV.x264-FLEET[eztv].mp4.torrent');
     $result1->setMagnetUrl('magnet:?xt=urn:btih:22db54ed3b1e55a2f998c531b8d504984adcce90&dn=Marvels.Agents.of.S.H.I.E.L.D.S03E13.HDTV.x264-FLEET%5Beztv%5D.mp4%5Beztv%5D&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A80&tr=udp%3A%2F%2Fglotorrents.pw%3A6969%2Fannounce&tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337%2Fannounce&tr=udp%3A%2F%2Fexodus.desync.com%3A6969');
     $result2 = new SearchResult();
     $result2->setName('Marvels Agents of S H I E L D S03E13 720p HDTV x264-AVS');
     $result2->setTorrentUrl('https://zoink.ch/torrent/Marvels.Agents.of.S.H.I.E.L.D.S03E13.720p.HDTV.x264-AVS[eztv].mkv.torrent');
     $result2->setMagnetUrl('magnet:?xt=urn:btih:adc79cf1d0c3d855f369ca4d43894927e34b6d7a&dn=Marvels.Agents.of.S.H.I.E.L.D.S03E13.720p.HDTV.x264-AVS%5Beztv%5D.mkv%5Beztv%5D&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A80&tr=udp%3A%2F%2Fglotorrents.pw%3A6969%2Fannounce&tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337%2Fannounce&tr=udp%3A%2F%2Fexodus.desync.com%3A6969');
     $result3 = new SearchResult();
     $result3->setName('Marvels Agents of S H I E L D S03E12 HDTV x264-KILLERS');
     $result3->setTorrentUrl('https://zoink.ch/torrent/Marvels.Agents.of.S.H.I.E.L.D.S03E12.HDTV.x264-KILLERS[eztv].mp4.torrent');
     $result3->setMagnetUrl('magnet:?xt=urn:btih:dac1f9ba51c08d32d113f35f0c17c5fe09381c38&dn=Marvels.Agents.of.S.H.I.E.L.D.S03E12.HDTV.x264-KILLERS%5Beztv%5D.mp4%5Beztv%5D&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A80&tr=udp%3A%2F%2Fglotorrents.pw%3A6969%2Fannounce&tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337%2Fannounce&tr=udp%3A%2F%2Fexodus.desync.com%3A6969');
     $expected = [$result1, $result2, $result3];
     $actual = $adapter->search('Marvel\'s Agents of S.H.I.E.L.D.')->wait();
     $this->assertEquals($expected, $actual);
 }
 public function testIsPerformingSearch()
 {
     $mockHandler = new MockHandler([new Response(200, [], $this->getMockRawResult())]);
     $adapter = new TorrentProjectAdapter();
     $adapter->setHttpClient(new Client(['handler' => $mockHandler]));
     $result1 = new SearchResult();
     $result1->setName('elementaryos-0.3.2-stable-i386.20151209.iso');
     $result1->setCategory('all');
     $result1->setSize(1126170624);
     $result1->setTorrentHash('001b104e49d517cf7a41593a73c3861b7c8e34f8');
     $result1->setSeeders(15);
     $result1->setLeechers(2);
     $actual = $adapter->search('The Walking Dead S05E08')->wait();
     $this->assertEquals($result1, $actual->getSearchResult()[0]);
 }
 /**
  * Parses eztv html response.
  *
  * @param string $htmlBody
  *
  * @return SearchResult[]
  */
 private static function parseResponse($htmlBody)
 {
     $crawler = new Crawler($htmlBody);
     $items = $crawler->filter('tr.forum_header_border');
     $results = [];
     foreach ($items as $item) {
         $result = new SearchResult();
         $itemCrawler = new Crawler($item);
         $result->setName(trim($itemCrawler->filter('td')->eq(1)->text()));
         //$result->setSeeders($this->options['seeders']);
         //$result->setLeechers($this->options['leechers']);
         $node = $itemCrawler->filter('a.download_1');
         if ($node->count() > 0) {
             $result->setTorrentUrl($node->eq(0)->attr('href'));
         }
         $node = $itemCrawler->filter('a.magnet');
         if ($node->count() > 0) {
             $result->setMagnetUrl($node->eq(0)->attr('href'));
         }
         $results[] = $result;
     }
     return $results;
 }
 /**
  * Parses thepiratebay html response.
  *
  * @param string $htmlBody
  *
  * @return SearchResult[]
  */
 private static function parseResponse($htmlBody)
 {
     $results = [];
     $raw_results = json_decode($htmlBody, true);
     foreach ($raw_results as $row) {
         if (is_array($row)) {
             $result = new SearchResult();
             $result->setTorrentHash($row['torrent_hash']);
             $result->setName($row['title']);
             $result->setCategory($row['category']);
             $result->setLeechers($row['leechs']);
             $result->setSeeders($row['seeds']);
             $result->setSize($row['torrent_size']);
             $results[] = $result;
         }
     }
     return $results;
 }
 public function testIsPerformingSearch()
 {
     $mockHandler = new MockHandler([new Response(200, [], $this->getMockRawResult())]);
     $adapter = new ThePirateBayAdapter();
     $adapter->setHttpClient(new Client(['handler' => $mockHandler]));
     $result1 = new SearchResult();
     $result1->setName('ElementaryOs Freya AMD64');
     $result1->setCategory('Applications > UNIX');
     $result1->setDate(\DateTime::createFromFormat('Y-m-d h:m', '2016-01-04 00:00'));
     $result1->setSize(1148903751);
     $result1->setUploader(null);
     $result1->setSeeders(3);
     $result1->setLeechers(2);
     $result1->setTorrentUrl('/torrent/13133483/ElementaryOs_Freya_AMD64');
     $result1->setMagnetUrl('magnet:?xt=urn:btih:fce720af722a813a184c5550a924aaa60a8d9af1&dn=ElementaryOs+Freya+AMD64&tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969&tr=udp%3A%2F%2Fzer0day.ch%3A1337&tr=udp%3A%2F%2Fopen.demonii.com%3A1337&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969&tr=udp%3A%2F%2Fexodus.desync.com%3A6969');
     $result2 = new SearchResult();
     $result2->setName('elementaryos luna 04 September 11');
     $result2->setCategory('Applications > UNIX');
     $result2->setDate(\DateTime::createFromFormat('Y-m-d h:m', '2011-09-04 00:00'));
     $result2->setSize(846871920);
     $result2->setUploader('alfalive');
     $result2->setSeeders(0);
     $result2->setLeechers(0);
     $result2->setTorrentUrl('/torrent/6650951/elementaryos_luna_04_September_11');
     $result2->setMagnetUrl('magnet:?xt=urn:btih:8ae1883db5ed9fe74cacfebd2e06483dd4434e53&dn=elementaryos+luna+04+September+11&tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969&tr=udp%3A%2F%2Fzer0day.ch%3A1337&tr=udp%3A%2F%2Fopen.demonii.com%3A1337&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969&tr=udp%3A%2F%2Fexodus.desync.com%3A6969');
     $result3 = new SearchResult();
     $result3->setName('elementaryos-beta2-i386.20130506.iso');
     $result3->setCategory('Applications > UNIX');
     $result3->setDate(\DateTime::createFromFormat('Y-m-d h:m', '2013-05-15 00:00'));
     $result3->setSize(679477248);
     $result3->setUploader('ixcoder');
     $result3->setSeeders(0);
     $result3->setLeechers(0);
     $result3->setTorrentUrl('/torrent/8477045/elementaryos-beta2-i386.20130506.iso');
     $result3->setMagnetUrl('magnet:?xt=urn:btih:94cb5bf6784f9596c56164251d4e5bd76b3a07a2&dn=elementaryos-beta2-i386.20130506.iso&tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969&tr=udp%3A%2F%2Fzer0day.ch%3A1337&tr=udp%3A%2F%2Fopen.demonii.com%3A1337&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969&tr=udp%3A%2F%2Fexodus.desync.com%3A6969');
     $result4 = new SearchResult();
     $result4->setName('elementaryos-beta2-amd64.20130506.iso');
     $result4->setCategory('Applications > UNIX');
     $result4->setDate(\DateTime::createFromFormat('Y-m-d h:m', '2013-05-15 00:00'));
     $result4->setSize(713031680);
     $result4->setUploader('ixcoder');
     $result4->setSeeders(0);
     $result4->setLeechers(0);
     $result4->setTorrentUrl('/torrent/8477082/elementaryos-beta2-amd64.20130506.iso');
     $result4->setMagnetUrl('magnet:?xt=urn:btih:ac86fca020c96066862da1b5fcdf967e2622528d&dn=elementaryos-beta2-amd64.20130506.iso&tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969&tr=udp%3A%2F%2Fzer0day.ch%3A1337&tr=udp%3A%2F%2Fopen.demonii.com%3A1337&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969&tr=udp%3A%2F%2Fexodus.desync.com%3A6969');
     $result5 = new SearchResult();
     $result5->setName('ElementaryOS 64-bit 20130810');
     $result5->setCategory('Applications > UNIX');
     $result5->setDate(\DateTime::createFromFormat('Y-m-d h:m', '2013-11-01 00:00'));
     $result5->setSize(727711744);
     $result5->setUploader(null);
     $result5->setSeeders(0);
     $result5->setLeechers(0);
     $result5->setTorrentUrl('/torrent/9129553/ElementaryOS_64-bit_20130810');
     $result5->setMagnetUrl('magnet:?xt=urn:btih:daaf19e0989a9f730ee4c2d97bd257c71a5b83f0&dn=ElementaryOS+64-bit+20130810&tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969&tr=udp%3A%2F%2Fzer0day.ch%3A1337&tr=udp%3A%2F%2Fopen.demonii.com%3A1337&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969&tr=udp%3A%2F%2Fexodus.desync.com%3A6969');
     $result6 = new SearchResult();
     $result6->setName('ElementaryOS 32-bit 20130810');
     $result6->setCategory('Applications > UNIX');
     $result6->setDate(\DateTime::createFromFormat('Y-m-d h:m', '2013-12-23 00:00'));
     $result6->setSize(694157312);
     $result6->setUploader(null);
     $result6->setSeeders(0);
     $result6->setLeechers(0);
     $result6->setTorrentUrl('/torrent/9385861/ElementaryOS_32-bit_20130810');
     $result6->setMagnetUrl('magnet:?xt=urn:btih:d9f6366a03a4d895865e52d5ca67dd15f7250b37&dn=ElementaryOS+32-bit+20130810&tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969&tr=udp%3A%2F%2Fzer0day.ch%3A1337&tr=udp%3A%2F%2Fopen.demonii.com%3A1337&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969&tr=udp%3A%2F%2Fexodus.desync.com%3A6969');
     $expected = [$result1, $result2, $result3, $result4, $result5, $result6];
     $actual = $adapter->search('The Walking Dead S05E08')->wait();
     $this->assertEquals($expected, $actual->getSearchResult());
 }