disableAutoCreateTempUser(); $this->expectApiErrorCode( 'tempuserdisabled' ); $this->doApiRequestWithToken( [ "action" => "acquiretempusername", ] ); } public function testExecuteDiesWhenUserIsRegistered() { $this->enableAutoCreateTempUser(); $this->expectApiErrorCode( 'alreadyregistered' ); $this->doApiRequestWithToken( [ 'action' => 'acquiretempusername', ], null, $this->mockRegisteredUltimateAuthority() ); } public function testExecuteDiesWhenNameCannotBeAcquired() { $mockTempUserCreator = $this->createMock( TempUserCreator::class ); $mockTempUserCreator->method( 'isEnabled' ) ->willReturn( true ); $mockTempUserCreator->method( 'acquireAndStashName' ) ->willReturn( null ); $this->overrideMwServices( null, [ 'TempUserCreator' => static function () use ( $mockTempUserCreator ) { return $mockTempUserCreator; } ] ); $this->expectApiErrorCode( 'tempuseracquirefailed' ); $this->doApiRequestWithToken( [ 'action' => 'acquiretempusername', ], null, $this->mockAnonUltimateAuthority() ); } public function testExecuteForSuccessfulCall() { ConvertibleTimestamp::setFakeTime( '20240405060708' ); $this->enableAutoCreateTempUser( [ 'genPattern' => '~$1', ] ); $this->assertArrayEquals( [ 'acquiretempusername' => '~2024-1' ], $this->doApiRequestWithToken( [ 'action' => 'acquiretempusername', ], null, $this->mockAnonUltimateAuthority() )[0], true, true ); } }