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']); }