1<?php 2 3/* 4 * This file is part of the Symfony package. 5 * 6 * (c) Fabien Potencier <fabien@symfony.com> 7 * 8 * For the full copyright and license information, please view the LICENSE 9 * file that was distributed with this source code. 10 */ 11 12namespace Symfony\Component\HttpFoundation\Tests\Session\Storage\Handler; 13 14use PHPUnit\Framework\TestCase; 15use Symfony\Component\HttpFoundation\Session\Storage\Handler\WriteCheckSessionHandler; 16 17/** 18 * @author Adrien Brault <adrien.brault@gmail.com> 19 * 20 * @group legacy 21 */ 22class WriteCheckSessionHandlerTest extends TestCase 23{ 24 public function test() 25 { 26 $wrappedSessionHandlerMock = $this->getMockBuilder('SessionHandlerInterface')->getMock(); 27 $writeCheckSessionHandler = new WriteCheckSessionHandler($wrappedSessionHandlerMock); 28 29 $wrappedSessionHandlerMock 30 ->expects($this->once()) 31 ->method('close') 32 ->with() 33 ->willReturn(true) 34 ; 35 36 $this->assertTrue($writeCheckSessionHandler->close()); 37 } 38 39 public function testWrite() 40 { 41 $wrappedSessionHandlerMock = $this->getMockBuilder('SessionHandlerInterface')->getMock(); 42 $writeCheckSessionHandler = new WriteCheckSessionHandler($wrappedSessionHandlerMock); 43 44 $wrappedSessionHandlerMock 45 ->expects($this->once()) 46 ->method('write') 47 ->with('foo', 'bar') 48 ->willReturn(true) 49 ; 50 51 $this->assertTrue($writeCheckSessionHandler->write('foo', 'bar')); 52 } 53 54 public function testSkippedWrite() 55 { 56 $wrappedSessionHandlerMock = $this->getMockBuilder('SessionHandlerInterface')->getMock(); 57 $writeCheckSessionHandler = new WriteCheckSessionHandler($wrappedSessionHandlerMock); 58 59 $wrappedSessionHandlerMock 60 ->expects($this->once()) 61 ->method('read') 62 ->with('foo') 63 ->willReturn('bar') 64 ; 65 66 $wrappedSessionHandlerMock 67 ->expects($this->never()) 68 ->method('write') 69 ; 70 71 $this->assertEquals('bar', $writeCheckSessionHandler->read('foo')); 72 $this->assertTrue($writeCheckSessionHandler->write('foo', 'bar')); 73 } 74 75 public function testNonSkippedWrite() 76 { 77 $wrappedSessionHandlerMock = $this->getMockBuilder('SessionHandlerInterface')->getMock(); 78 $writeCheckSessionHandler = new WriteCheckSessionHandler($wrappedSessionHandlerMock); 79 80 $wrappedSessionHandlerMock 81 ->expects($this->once()) 82 ->method('read') 83 ->with('foo') 84 ->willReturn('bar') 85 ; 86 87 $wrappedSessionHandlerMock 88 ->expects($this->once()) 89 ->method('write') 90 ->with('foo', 'baZZZ') 91 ->willReturn(true) 92 ; 93 94 $this->assertEquals('bar', $writeCheckSessionHandler->read('foo')); 95 $this->assertTrue($writeCheckSessionHandler->write('foo', 'baZZZ')); 96 } 97} 98