cache = $this->createMock(CacheItemPoolInterface::class); $this->handler = new SymfonyCacheSessionHandler($this->cache); } public function testOpen() { $this->assertTrue($this->handler->open('', '')); } public function testClose() { $this->assertTrue($this->handler->close()); } public function testRead() { $sessionId = 'foo'; $sessionData = 'bar'; $cacheItem = $this->createMock(CacheItemInterface::class); $cacheItem->method('isHit')->willReturn(true); $cacheItem->method('get')->willReturn($sessionData); $this->cache->method('getItem')->willReturn($cacheItem); $this->assertEquals($sessionData, $this->handler->read($sessionId)); } public function testReadNonExistent() { $sessionId = 'foo'; $cacheItem = $this->createMock(CacheItemInterface::class); $cacheItem->method('isHit')->willReturn(false); $this->cache->method('getItem')->willReturn($cacheItem); $this->assertEquals('', $this->handler->read($sessionId)); } public function testWrite() { $sessionId = 'foo'; $sessionData = 'bar'; $cacheItem = $this->createMock(CacheItemInterface::class); $cacheItem->method('set')->willReturn($cacheItem); $cacheItem->method('expiresAfter')->willReturn($cacheItem); $this->cache->method('getItem')->willReturn($cacheItem); $this->cache->method('save')->willReturn(true); $this->assertTrue($this->handler->write($sessionId, $sessionData)); } public function testDestroy() { $this->cache->method('deleteItem')->willReturn(true); $this->assertTrue($this->handler->destroy('foo')); } public function testGc() { $this->assertNotFalse($this->handler->gc(123)); } public function testCreateSid() { $sid = $this->handler->create_sid(); $this->assertMatchesRegularExpression('/^[a-f0-9]{64}$/', $sid); } public function testUpdateTimestamp() { $sessionId = 'foo'; $sessionData = 'bar'; $cacheItem = $this->createMock(CacheItemInterface::class); $cacheItem->method('set')->willReturn($cacheItem); $cacheItem->method('expiresAfter')->willReturn($cacheItem); $this->cache->method('getItem')->willReturn($cacheItem); $this->cache->method('save')->willReturn(true); $this->assertTrue($this->handler->updateTimestamp($sessionId, $sessionData)); } public function testValidateId() { $cacheItem = $this->createMock(CacheItemInterface::class); $cacheItem->method('isHit')->willReturn(true); $this->cache->method('getItem')->willReturn($cacheItem); $this->assertTrue($this->handler->validateId('foo')); } }