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()); }
/** * 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); }