cloud_bbb/tests/Unit/Controller/RoomShareControllerTest.php

135 lines
3.0 KiB
PHP
Raw Permalink Normal View History

<?php
namespace OCA\BigBlueButton\Tests\Controller;
2020-09-23 12:33:09 +02:00
use OCA\BigBlueButton\CircleHelper;
use OCA\BigBlueButton\Controller\RoomShareController;
use OCA\BigBlueButton\Db\Room;
use OCA\BigBlueButton\Db\RoomShare;
2020-09-23 12:33:09 +02:00
use OCA\BigBlueButton\Service\RoomService;
use OCA\BigBlueButton\Service\RoomShareService;
use OCP\AppFramework\Http;
use OCP\IGroupManager;
2020-09-23 12:33:09 +02:00
use OCP\IRequest;
use OCP\IUserManager;
2020-09-23 12:33:09 +02:00
use PHPUnit\Framework\TestCase;
class RoomShareControllerTest extends TestCase {
private $request;
private $service;
private $roomService;
private $circleHelper;
private $userManager;
private $groupManager;
private $controller;
2020-06-17 10:56:28 +02:00
private $userId = 'user_foo';
public function setUp(): void {
parent::setUp();
$this->request = $this->createMock(IRequest::class);
$this->service = $this->createMock(RoomShareService::class);
$this->userManager = $this->createMock(IUserManager::class);
$this->groupManager = $this->createMock(IGroupManager::class);
$this->roomService = $this->createMock(RoomService::class);
$this->circleHelper = $this->createMock(CircleHelper::class);
$this->controller = new RoomShareController(
'bbb',
$this->request,
$this->service,
$this->userManager,
$this->groupManager,
$this->roomService,
$this->circleHelper,
2020-06-17 10:56:28 +02:00
$this->userId
);
}
public function testIndexWithoutRoomId() {
$response = $this->controller->index();
$this->assertEquals(Http::STATUS_BAD_REQUEST, $response->getStatus());
}
public function testIndexWithoutPermission() {
$this->request
->expects($this->once())
->method('getParam')
->with('id')
->willReturn(1234);
2020-06-17 10:56:28 +02:00
$room = new Room();
$room->setUserId('user_bar');
$this->roomService
->expects($this->once())
->method('find')
2020-06-17 10:56:28 +02:00
->with(1234)
->willReturn($room);
$response = $this->controller->index();
$this->assertEquals(Http::STATUS_FORBIDDEN, $response->getStatus());
}
public function testIndexWithoutShares() {
$roomId = 1234;
$this->request
->expects($this->once())
->method('getParam')
->with('id')
->willReturn($roomId);
2020-06-17 10:56:28 +02:00
$room = new Room();
$room->setUserId($this->userId);
$this->roomService
->expects($this->once())
->method('find')
2020-06-17 10:56:28 +02:00
->willReturn($room);
$this->service
->expects($this->once())
->method('findAll')
->with($roomId)
->willReturn([]);
$response = $this->controller->index();
$this->assertEquals(Http::STATUS_OK, $response->getStatus());
$this->assertEquals([], $response->getData());
}
public function testIndexWithShares() {
$roomId = 1234;
$this->request
->expects($this->once())
->method('getParam')
->with('id')
->willReturn($roomId);
2020-06-17 10:56:28 +02:00
$room = new Room();
$room->setUserId($this->userId);
$this->roomService
->expects($this->once())
->method('find')
2020-06-17 10:56:28 +02:00
->willReturn($room);
$this->service
->expects($this->once())
->method('findAll')
->with($roomId)
->willReturn([
new RoomShare()
]);
$response = $this->controller->index();
$this->assertEquals(Http::STATUS_OK, $response->getStatus());
$this->assertCount(1, $response->getData());
}
}