예제 #1
0
 public function testRoundRobinScheduling()
 {
     $dao = new CSVAdapter(__DIR__ . '/test_multipleentries.csv');
     $this->assertEquals($dao->count(), 5);
     $scheduler = new ProxyScheduler($dao, new RoundRobinScheduling(), false);
     $this->assertEquals('http://201.91.10.234:8080', $scheduler->getNext()->getID());
     $this->assertEquals('http://202.91.10.234:8080', $scheduler->getNext()->getID());
     $this->assertEquals('http://203.91.10.234:8080', $scheduler->getNext()->getID());
     $this->assertEquals('http://204.91.10.234:8080', $scheduler->getNext()->getID());
     $this->assertEquals('http://205.91.10.234:8080', $scheduler->getNext()->getID());
     $this->assertEquals('http://201.91.10.234:8080', $scheduler->getNext()->getID());
 }
예제 #2
0
 /**
  * should only return 3 not 5.
  */
 public function testFreshProxyListOrder()
 {
     $dao = new CSVAdapter(__DIR__ . '/test_multipleentries.csv');
     $list = $dao->getFreshProxies(false);
     $this->assertInstanceOf('Ardent\\Collection\\Queue', $list);
     $this->assertEquals(5, $list->count());
     $ids = ['http://201.91.10.234:8080', 'http://202.91.10.234:8080', 'http://203.91.10.234:8080', 'http://204.91.10.234:8080', 'http://205.91.10.234:8080'];
     //without touching last used
     foreach ($ids as $id) {
         $p = $list->dequeue();
         $this->assertEquals($id, $p->getID());
         $dao->updateLastUsed($p, time());
     }
     $blockingtime = 3;
     $list = $dao->getFreshProxies($blockingtime);
     $this->assertCount(0, $list);
     sleep($blockingtime + 2);
     $list = $dao->getFreshProxies($blockingtime);
     $this->assertCount(5, $list);
 }