expectException( Exception::class ); $this->expectExceptionMessage( 'Password configuration must contain a type name' ); $this->getMockBuilder( Password::class ) ->setConstructorArgs( [ $factory, [] ] ) ->getMock(); } public function testGetType() { $factory = new PasswordFactory(); $password = new MWOldPassword( $factory, [ 'type' => 'this is a test' ] ); $this->assertSame( 'this is a test', $password->getType() ); } public function testToStringThrows() { $factory = new PasswordFactory(); $password = new MWOldPassword( $factory, [ 'type' => 'B' ], str_repeat( 'X', 300 ) ); $this->expectException( PasswordError::class ); $this->expectExceptionMessage( 'Password hash is too big' ); $password->toString(); } public function testToString() { $factory = new PasswordFactory(); $password = $this->getMockBuilder( Password::class ) ->setConstructorArgs( [ $factory, [ 'type' => 'X' ], ':X:foo' ] ) ->getMockForAbstractClass(); $this->assertSame( ':X:foo', $password->toString() ); } }