/** * */ public function testPasswordManagerNeverMigratesPasswordOnFailedVerificationWithVariantEncoders() { $user_mock = $this->getMockBuilder('ilObjUser')->disableOriginalConstructor()->getMock(); $encoder = $this->getMockBuilder('ilBasePasswordEncoder')->disableOriginalConstructor()->getMock(); $factory_mock = $this->getMockBuilder('ilUserPasswordEncoderFactory')->disableOriginalConstructor()->getMock(); $user_mock->expects($this->once())->method('getPasswordSalt')->will($this->returnValue('asuperrandomsalt')); $user_mock->expects($this->once())->method('getPasswordEncodingType')->will($this->returnValue('second_mockencoder')); $user_mock->expects($this->once())->method('getPasswd')->will($this->returnValue(self::ENCODED_PASSWORD)); $user_mock->expects($this->never())->method('resetPassword'); $encoder->expects($this->once())->method('getName')->will($this->returnValue('second_mockencoder')); $encoder->expects($this->once())->method('isPasswordValid')->with($this->equalTo(self::ENCODED_PASSWORD), $this->equalTo(self::PASSWORD), $this->isType('string'))->will($this->returnValue(false)); $factory_mock->expects($this->once())->method('getEncoderByName')->will($this->returnValue($encoder)); $password_manager = new ilUserPasswordManager(array('password_encoder' => 'mockencoder', 'encoder_factory' => $factory_mock)); $this->assertFalse($password_manager->verifyPassword($user_mock, self::PASSWORD)); }