public function testLoadObjectStates()
{
$testStates = array(new SPIObjectState(array('id' => 1, 'identifier' => 'test_state_1_group1', 'groupId' => 1)), new SPIObjectState(array('id' => 2, 'identifier' => 'test_state_2_group1', 'groupId' => 1)), new SPIObjectState(array('id' => 3, 'identifier' => 'test_state_3_group1', 'groupId' => 1)));
$testStateIds = array_map(function ($state) {
return $state->id;
}, $testStates);
$cacheItemMock = $this->getMock('Stash\\Interfaces\\ItemInterface');
$this->cacheMock->expects($this->at(0))->method('getItem')->with('objectstate', 'byGroup', 1)->will($this->returnValue($cacheItemMock));
$cacheItemMock->expects($this->once())->method('get')->will($this->returnValue(null));
$cacheItemMock->expects($this->once())->method('isMiss')->will($this->returnValue(true));
$this->loggerMock->expects($this->once())->method('logCall');
$innerHandlerMock = $this->getMock('eZ\\Publish\\SPI\\Persistence\\Content\\ObjectState\\Handler');
$this->persistenceHandlerMock->expects($this->once())->method('objectStateHandler')->will($this->returnValue($innerHandlerMock));
$innerHandlerMock->expects($this->once())->method('loadObjectStates')->with(1)->will($this->returnValue($testStates));
$cacheItemMock->expects($this->once())->method('set')->with($testStateIds)->will($this->returnValue($cacheItemMock));
$cacheItemMock->expects($this->once())->method('save')->with();
$handler = $this->persistenceCacheHandler->objectStateHandler();
$states = $handler->loadObjectStates(1);
$this->assertEquals($states, $testStates);
}