getEntityManager(); $glossaryRepo = self::getContainer()->get(CGlossaryRepository::class); $courseRepo = self::getContainer()->get(CourseRepository::class); $course = $this->createCourse('new'); $teacher = $this->createUser('teacher'); $glossary = (new CGlossary()) ->setTitle('glossary') ->setDescription('desc') ->setParent($course) ->setCreator($teacher) ->addCourseLink($course) ; $this->assertHasNoEntityViolations($glossary); $em->persist($glossary); $em->flush(); $this->assertSame('glossary', (string) $glossary); $this->assertSame('desc', $glossary->getDescription()); $this->assertSame($glossary->getResourceIdentifier(), $glossary->getIid()); $router = $this->getContainer()->get(RouterInterface::class); $link = $glossaryRepo->getLink($glossary, $router); $this->assertSame($link, '/main/glossary/index.php?glossary_id='.$glossary->getIid()); $link = $glossaryRepo->getLink($glossary, $router, ['extra' => 'extra']); $this->assertSame($link, '/main/glossary/index.php?glossary_id='.$glossary->getIid().'&extra=extra'); $this->assertSame(1, $glossaryRepo->count([])); $courseRepo->delete($course); // A glossary is a global resource, so don't cascade-delete it $this->assertSame(1, $glossaryRepo->count([])); $this->assertSame(0, $courseRepo->count([])); } }