request = $this->createMock(IRequest::class); $this->logger = $this->createMock(LoggerInterface::class); $this->userManager = $this->createMock(IUserManager::class); $this->groupManager = $this->createMock(IGroupManager::class); $this->urlGenerator = $this->createMock(IURLGenerator::class); $this->cloudFederationProviderManager = $this->createMock(ICloudFederationProviderManager::class); $this->config = $this->createMock(Config::class); $this->eventDispatcher = $this->createMock(IEventDispatcher::class); $this->federatedInviteMapper = $this->createMock(FederatedInviteMapper::class); $this->addressHandler = $this->createMock(AddressHandler::class); $this->appConfig = $this->createMock(IAppConfig::class); $this->cloudFederationFactory = $this->createMock(ICloudFederationFactory::class); $this->cloudIdManager = $this->createMock(ICloudIdManager::class); $this->signatureManager = $this->createMock(ISignatureManager::class); $this->signatoryManager = $this->createMock(OCMSignatoryManager::class); $this->timeFactory = $this->createMock(ITimeFactory::class); $this->requestHandlerController = new RequestHandlerController( 'cloud_federation_api', $this->request, $this->logger, $this->userManager, $this->groupManager, $this->urlGenerator, $this->cloudFederationProviderManager, $this->config, $this->eventDispatcher, $this->federatedInviteMapper, $this->addressHandler, $this->appConfig, $this->cloudFederationFactory, $this->cloudIdManager, $this->signatureManager, $this->signatoryManager, $this->timeFactory, ); } public function testInviteAccepted(): void { $token = 'token'; $userId = 'userId'; $invite = new FederatedInvite(); $invite->setCreatedAt(1); $invite->setUserId($userId); $invite->setToken($token); $this->federatedInviteMapper->expects(self::once()) ->method('findByToken') ->with($token) ->willReturn($invite); $this->federatedInviteMapper->expects(self::once()) ->method('update') ->willReturnArgument(0); $user = $this->createMock(IUser::class); $user->method('getUID') ->willReturn($userId); $user->method('getEMailAddress') ->willReturn('email'); $user->method('getDisplayName') ->willReturn('displayName'); $this->userManager->expects(self::once()) ->method('get') ->with($userId) ->willReturn($user); $recipientProvider = 'http://127.0.0.1'; $recipientId = 'remote'; $recipientEmail = 'remote@example.org'; $recipientName = 'Remote Remoteson'; $response = ['userID' => $userId, 'email' => 'email', 'name' => 'displayName']; $json = new JSONResponse($response, Http::STATUS_OK); $this->assertEquals($json, $this->requestHandlerController->inviteAccepted($recipientProvider, $token, $recipientId, $recipientEmail, $recipientName)); } }