コード例 #1
0
 /**
  * @test
  */
 public function getCachedItemWaitsForCacheCreationWhenCacheIsUnderConstruction()
 {
     $storage = $this->mockWithPhpUnit();
     $storage->expects($this->at(0))->method('hasItem')->with('foo')->will($this->returnValue(false));
     $storage->expects($this->at(1))->method('hasItem')->with($this->delayedKey)->will($this->returnValue(true));
     $storage->expects($this->at(2))->method('hasItem')->with($this->delayedKey)->will($this->returnValue(true));
     $storage->expects($this->at(3))->method('hasItem')->with($this->delayedKey)->will($this->returnValue(false));
     $storage->expects($this->once())->method('getItem')->with('foo')->will($this->returnValue('bar'));
     $return = $this->cache->getCachedItem('foo', function () {
         return 'baz';
     });
     $this->waiter->wait(1)->shouldHaveBeenCalled();
     $this->assertEquals('bar', $return);
 }