public function testGetContentStateCached() { $expectedState = new SPIObjectState(array('id' => 1, 'identifier' => 'test_state', 'name' => 'Test State', 'groupId' => 1)); $cacheItemMock = $this->getMock('Stash\\Interfaces\\ItemInterface'); $this->cacheMock->expects($this->at(0))->method('getItem')->with('objectstate', 'byContent', 10, 1)->will($this->returnValue($cacheItemMock)); $cacheItemMock->expects($this->once())->method('get')->will($this->returnValue(1)); $cacheItemMock->expects($this->once())->method('isMiss')->will($this->returnValue(false)); // load() $this->cacheMock->expects($this->at(1))->method('getItem')->with('objectstate', $expectedState->id)->will($this->returnCallback(function ($cachekey, $i) use($expectedState) { $cacheItemMock = $this->getMock('Stash\\Interfaces\\ItemInterface'); $cacheItemMock->expects($this->once())->method('get')->will($this->returnValue($expectedState)); return $cacheItemMock; })); $handler = $this->persistenceCacheHandler->objectStateHandler(); $state = $handler->getContentState(10, 1); $this->assertEquals($state, $expectedState); }