/** * Tests that other invocations are passed unmodified to the wrapped handler. * * @covers ::setSessionWritable * @covers ::open * @covers ::read * @covers ::close * @covers ::destroy * @covers ::gc * @dataProvider providerTestOtherMethods */ public function testOtherMethods($method, $expected_result, $args) { $invocation = $this->wrappedSessionHandler->expects($this->exactly(2))->method($method)->will($this->returnValue($expected_result)); // Set the parameter matcher. call_user_func_array([$invocation, 'with'], $args); // Test with writable session. $this->assertSame($this->sessionHandler->isSessionWritable(), TRUE); $actual_result = call_user_func_array([$this->sessionHandler, $method], $args); $this->assertSame($expected_result, $actual_result); // Test with non-writable session. $this->sessionHandler->setSessionWritable(FALSE); $this->assertSame($this->sessionHandler->isSessionWritable(), FALSE); $actual_result = call_user_func_array([$this->sessionHandler, $method], $args); $this->assertSame($expected_result, $actual_result); }