public function testFallbackPrecedenceWhenServerRemoved()
{
$mockHasher = new MockHasher();
$hashSpace = new Flexihash($mockHasher, 1);
$mockHasher->setHashValue(10);
$hashSpace->addTarget('t1');
$mockHasher->setHashValue(20);
$hashSpace->addTarget('t2');
$mockHasher->setHashValue(30);
$hashSpace->addTarget('t3');
$mockHasher->setHashValue(15);
$this->assertEquals($hashSpace->lookup('resource'), 't2');
$this->assertEquals($hashSpace->lookupList('resource', 3), ['t2', 't3', 't1']);
$hashSpace->removeTarget('t2');
$this->assertEquals($hashSpace->lookup('resource'), 't3');
$this->assertEquals($hashSpace->lookupList('resource', 3), ['t3', 't1']);
$hashSpace->removeTarget('t3');
$this->assertEquals($hashSpace->lookup('resource'), 't1');
$this->assertEquals($hashSpace->lookupList('resource', 3), ['t1']);
}