wrappedSession = $this->getMockBuilder(ISession::class) ->disableOriginalConstructor() ->getMock(); $this->crypto = $this->getMockBuilder('OCP\Security\ICrypto') ->disableOriginalConstructor() ->getMock(); $this->crypto->expects($this->any()) ->method('encrypt') ->willReturnCallback(function ($input) { return $input; }); $this->crypto->expects($this->any()) ->method('decrypt') ->willReturnCallback(function ($input) { if ($input === '') { return ''; } return substr($input, 1, -1); }); $this->instance = new CryptoSessionData($this->wrappedSession, $this->crypto, 'PASS'); } public function testUnwrappingGet(): void { $unencryptedValue = 'foobar'; $encryptedValue = $this->crypto->encrypt($unencryptedValue); $this->wrappedSession->expects($this->once()) ->method('get') ->with('encrypted_session_data') ->willReturnCallback(function () use ($encryptedValue) { return $encryptedValue; }); $this->assertSame($unencryptedValue, $this->wrappedSession->get('encrypted_session_data')); } }