request = $this->createMock(IRequest::class); $this->storage = $this->createMock(BackupCodeStorage::class); $this->userSession = $this->createMock(IUserSession::class); $this->controller = new SettingsController('twofactor_backupcodes', $this->request, $this->storage, $this->userSession); } public function testCreateCodes(): void { $user = $this->createMock(IUser::class); $codes = ['a', 'b']; $this->userSession->expects($this->once()) ->method('getUser') ->willReturn($user); $this->storage->expects($this->once()) ->method('createCodes') ->with($user) ->willReturn($codes); $this->storage->expects($this->once()) ->method('getBackupCodesState') ->with($user) ->willReturn(['state']); $expected = [ 'codes' => $codes, 'state' => ['state'], ]; $response = $this->controller->createCodes(); $this->assertInstanceOf(JSONResponse::class, $response); $this->assertEquals($expected, $response->getData()); } }