diff --git a/tests/Unit/Service/RestrictionServiceTest.php b/tests/Unit/Service/RestrictionServiceTest.php new file mode 100644 index 0000000..baba3f3 --- /dev/null +++ b/tests/Unit/Service/RestrictionServiceTest.php @@ -0,0 +1,52 @@ +mapper = $this->createMock(RestrictionMapper::class); + + $this->service = new RestrictionService($this->mapper); + } + + public function testFindByGroupIds() { + $restriction0 = new Restriction(); + $restriction0->setRoomTypes(\json_encode([Room::ACCESS_INTERNAL])); + $restriction0->setMaxParticipants(50); + $restriction0->setAllowRecording(false); + + $restriction1 = new Restriction(); + $restriction1->setRoomTypes(\json_encode([Room::ACCESS_INTERNAL, Room::ACCESS_INTERNAL_RESTRICTED])); + $restriction1->setMaxRooms(10); + $restriction1->setMaxParticipants(100); + $restriction1->setAllowRecording(true); + + $this->mapper + ->expects($this->once()) + ->method('findByGroupIds') + ->willReturn([$restriction1]); + + $this->mapper + ->expects($this->once()) + ->method('findByGroupId') + ->willReturn($restriction0); + + $result = $this->service->findByGroupIds([]); + + $this->assertEquals([Room::ACCESS_INTERNAL], \json_decode($result->getRoomTypes())); + $this->assertEquals(-1, $result->getMaxRooms()); + $this->assertEquals(100, $result->getMaxParticipants()); + $this->assertTrue($result->getAllowRecording()); + } +}