extension = new CurrentCoursesExtension($this->security); } public function testSupportsReturnsTrueForCourseClass(): void { $this->assertTrue($this->extension->supports(Course::class, null)); } public function testSupportsReturnsFalseForOtherClasses(): void { $this->assertFalse($this->extension->supports('OtherClass', null)); } public function testAddWhere(): void { $this->user->method('getOrganization')->willReturn($this->organization); $this->security->method('getUser')->willReturn($this->user); $this->queryBuilder->method('getRootAliases')->willReturn(['a']); $this->queryBuilder ->expects(self::exactly(1)) ->method('andWhere') ->willReturnMap([ ['a.organization = :organization', $this->queryBuilder], ]); $this->queryBuilder ->expects(self::exactly(1)) ->method('setParameter') ->willReturnMap([ ['organization', $this->organization, null, $this->queryBuilder], ]); $this->invokeAddWhere($this->extension, $this->queryBuilder, Course::class, null); } public function testAddWhereMissingUser(): void { $this->security->method('getUser')->willReturn(null); $this->user->expects(self::never())->method('getOrganization'); $this->queryBuilder->expects(self::never())->method('getRootAliases'); $this->queryBuilder->expects(self::never())->method('andWhere'); $this->queryBuilder->expects(self::never())->method('setParameter'); $this->invokeAddWhere($this->extension, $this->queryBuilder, Course::class, null); } public function testAddWhereMissingOrganization(): void { $this->security->method('getUser')->willReturn($this->user); $this->user->expects(self::once())->method('getOrganization')->willReturn(null); $this->queryBuilder->expects(self::never())->method('getRootAliases'); $this->queryBuilder->expects(self::never())->method('andWhere'); $this->queryBuilder->expects(self::never())->method('setParameter'); $this->invokeAddWhere($this->extension, $this->queryBuilder, Course::class, null); } }