Add tests + fix entities

pull/4020/head^2
Julio 5 years ago
parent 47d08a1358
commit 414a0decbf
  1. 4
      src/CoreBundle/Entity/Page.php
  2. 2
      src/CoreBundle/Entity/PageCategory.php
  3. 2
      src/CoreBundle/Entity/Promotion.php
  4. 2
      src/CourseBundle/Entity/CAttendance.php
  5. 2
      src/CourseBundle/Entity/CAttendanceResult.php
  6. 2
      src/CourseBundle/Entity/CAttendanceSheet.php
  7. 5
      src/CourseBundle/Entity/CAttendanceSheetLog.php
  8. 6
      tests/CoreBundle/Repository/PageRepositoryTest.php
  9. 5
      tests/CoreBundle/Repository/PromotionRepositoryTest.php
  10. 24
      tests/CoreBundle/Repository/ResourceNodeRepositoryTest.php
  11. 3
      tests/CoreBundle/Repository/SessionRepositoryTest.php
  12. 27
      tests/CourseBundle/Repository/CAnnouncementAttachmentRepositoryTest.php
  13. 27
      tests/CourseBundle/Repository/CAnnouncementRepositoryTest.php
  14. 19
      tests/CourseBundle/Repository/CAttendanceRepositoryTest.php
  15. 56
      tests/CourseBundle/Repository/CGlossaryRepositoryTest.php
  16. 48
      tests/CourseBundle/Repository/CNotebookRepositoryTest.php
  17. 11
      tests/CourseBundle/Repository/CStudentPublicationRepositoryTest.php
  18. 8
      tests/CourseBundle/Repository/CSurveyRepositoryTest.php

@ -67,7 +67,7 @@ class Page
* @ORM\Id
* @ORM\GeneratedValue()
*/
protected int $id;
protected ?int $id = null;
/**
* @ORM\Column(name="title", type="string", length=255)
@ -141,7 +141,7 @@ class Page
$this->enabled = false;
}
public function getId(): int
public function getId(): ?int
{
return $this->id;
}

@ -139,7 +139,7 @@ class PageCategory
return $this->pages;
}
public function setPages($pages): self
public function setPages(Collection $pages): self
{
$this->pages = $pages;

@ -13,8 +13,6 @@ use Gedmo\Timestampable\Traits\TimestampableEntity;
use Symfony\Component\Validator\Constraints as Assert;
/**
* Promotion.
*
* @ORM\Table(name="promotion")
* @ORM\Entity
*/

@ -56,6 +56,7 @@ class CAttendance extends AbstractResource implements ResourceInterface
/**
* @ORM\Column(name="attendance_qualify_max", type="integer", nullable=false)
*/
#[Assert\NotNull]
protected int $attendanceQualifyMax;
/**
@ -67,6 +68,7 @@ class CAttendance extends AbstractResource implements ResourceInterface
/**
* @ORM\Column(name="locked", type="integer", nullable=false)
*/
#[Assert\NotNull]
protected int $locked;
/**

@ -8,6 +8,7 @@ namespace Chamilo\CourseBundle\Entity;
use Chamilo\CoreBundle\Entity\User;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
/**
* @ORM\Table(
@ -41,6 +42,7 @@ class CAttendanceResult
/**
* @ORM\Column(name="score", type="integer", nullable=false)
*/
#[Assert\NotNull]
protected int $score;
public function getUser(): User

@ -8,6 +8,7 @@ namespace Chamilo\CourseBundle\Entity;
use Chamilo\CoreBundle\Entity\User;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
/**
* @ORM\Table(
@ -30,6 +31,7 @@ class CAttendanceSheet
/**
* @ORM\Column(name="presence", type="boolean", nullable=false)
*/
#[Assert\NotNull]
protected bool $presence;
/**

@ -9,10 +9,9 @@ namespace Chamilo\CourseBundle\Entity;
use Chamilo\CoreBundle\Entity\User;
use DateTime;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
/**
* CAttendanceSheetLog.
*
* @ORM\Table(
* name="c_attendance_sheet_log",
* indexes={
@ -44,11 +43,13 @@ class CAttendanceSheetLog
/**
* @ORM\Column(name="lastedit_date", type="datetime", nullable=false)
*/
#[Assert\NotNull]
protected DateTime $lasteditDate;
/**
* @ORM\Column(name="lastedit_type", type="string", length=200, nullable=false)
*/
#[Assert\NotNull]
protected string $lasteditType;
/**

@ -13,6 +13,7 @@ use Chamilo\CoreBundle\Repository\PageRepository;
use Chamilo\Tests\AbstractApiTest;
use Chamilo\Tests\ChamiloTestTrait;
use DateTime;
use Doctrine\Common\Collections\ArrayCollection;
class PageRepositoryTest extends AbstractApiTest
{
@ -51,6 +52,11 @@ class PageRepositoryTest extends AbstractApiTest
;
$this->assertHasNoEntityViolations($page);
$em->persist($page);
$collection = new ArrayCollection();
$collection->add($page);
$category->setPages($collection);
$em->persist($category);
$em->flush();
$this->assertSame(0, $page->getPosition());

@ -18,8 +18,6 @@ class PromotionRepositoryTest extends AbstractApiTest
public function testCreate(): void
{
self::bootKernel();
$em = $this->getEntityManager();
$repo = self::getContainer()->get(PromotionRepository::class);
$defaultCount = $repo->count([]);
@ -40,6 +38,9 @@ class PromotionRepositoryTest extends AbstractApiTest
$em->persist($promotion);
$em->flush();
$this->assertSame('2000', $promotion->getName());
$this->assertSame('Promotion of 2000', $promotion->getDescription());
$this->assertNotNull($promotion->getId());
$this->assertSame(0, $promotion->getAnnouncements()->count());
$this->assertSame(0, $promotion->getSessions()->count());

@ -15,6 +15,7 @@ use Chamilo\CoreBundle\Repository\ResourceNodeRepository;
use Chamilo\Tests\AbstractApiTest;
use Chamilo\Tests\ChamiloTestTrait;
use DateTime;
use Doctrine\Common\Collections\ArrayCollection;
use Symfony\Component\Routing\RouterInterface;
class ResourceNodeRepositoryTest extends AbstractApiTest
@ -75,6 +76,8 @@ class ResourceNodeRepositoryTest extends AbstractApiTest
$em = $this->getEntityManager();
$repoType = $em->getRepository(ResourceType::class);
$repoComment = $em->getRepository(ResourceComment::class);
$user = $this->createUser('julio');
$type = $repoType->findOneBy(['name' => 'illustrations']);
@ -101,6 +104,27 @@ class ResourceNodeRepositoryTest extends AbstractApiTest
$resourceNode->addComment($comment);
$em->flush();
$this->assertSame(0, $comment->getChildren()->count());
$comment2 = (new ResourceComment())
->setContent('content2')
->setAuthor($user)
->setResourceNode($resourceNode)
;
$collection = new ArrayCollection();
$collection->add($comment2);
$comment->setChildren($collection);
$em->persist($comment2);
$em->persist($comment);
$em->flush();
/** @var ResourceComment $comment */
$comment = $repoComment->find($comment->getId());
$this->assertSame(1, $comment->getChildren()->count());
$this->assertSame('content', $comment->getContent());
$this->assertNotNull($comment->getId());
$this->assertNotNull($comment->getResourceNode());
$this->assertSame(1, $resourceNode->getComments()->count());
}

@ -38,6 +38,7 @@ class SessionRepositoryTest extends AbstractApiTest
$count = $repo->count([]);
$this->assertSame(0, $session->getPosition());
$this->assertSame(1, $count);
}
@ -285,6 +286,8 @@ class SessionRepositoryTest extends AbstractApiTest
$this->assertTrue($hasUser);
$this->assertTrue($session->hasStudentInCourse($student, $course));
$this->assertTrue($session->hasStudentInCourseList($student));
$this->assertFalse($session->hasCoachInCourseList($student));
$this->assertTrue($session->hasCoachInCourseList($courseCoach));
$this->assertSame(5, $session->getUsers()->count());

@ -6,6 +6,7 @@ declare(strict_types=1);
namespace Chamilo\Tests\CourseBundle\Repository;
use Chamilo\CoreBundle\Repository\Node\CourseRepository;
use Chamilo\CourseBundle\Entity\CAnnouncement;
use Chamilo\CourseBundle\Entity\CAnnouncementAttachment;
use Chamilo\CourseBundle\Repository\CAnnouncementAttachmentRepository;
@ -19,11 +20,10 @@ class CAnnouncementAttachmentRepositoryTest extends AbstractApiTest
public function testCreate(): void
{
self::bootKernel();
$em = $this->getEntityManager();
$repo = self::getContainer()->get(CAnnouncementRepository::class);
$repoAnnouncement = self::getContainer()->get(CAnnouncementRepository::class);
$repoAttachment = self::getContainer()->get(CAnnouncementAttachmentRepository::class);
$courseRepo = self::getContainer()->get(CourseRepository::class);
$course = $this->createCourse('new');
$teacher = $this->createUser('teacher');
@ -37,6 +37,7 @@ class CAnnouncementAttachmentRepositoryTest extends AbstractApiTest
$em->persist($announcement);
$attachment = (new CAnnouncementAttachment())
->setComment('comment')
->setFilename('image')
->setPath(uniqid('announce_', true))
->setAnnouncement($announcement)
@ -48,10 +49,26 @@ class CAnnouncementAttachmentRepositoryTest extends AbstractApiTest
$this->assertHasNoEntityViolations($attachment);
$em->persist($attachment);
$em->flush();
$this->assertSame(1, $repo->count([]));
$this->assertNotNull($attachment->getComment());
$this->assertSame(1, $attachment->getSize());
$this->assertSame($attachment->getResourceIdentifier(), $attachment->getIid());
$em->clear();
/** @var CAnnouncement $announcement */
$announcement = $repoAnnouncement->find($announcement->getIid());
$this->assertSame(1, $announcement->getAttachments()->count());
$this->assertSame(1, $repoAnnouncement->count([]));
$this->assertSame(1, $repoAttachment->count([]));
$course = $this->getCourse($course->getId());
$courseRepo->delete($course);
$this->assertSame(0, $repoAnnouncement->count([]));
$this->assertSame(0, $repoAttachment->count([]));
$this->assertSame(0, $courseRepo->count([]));
}
}

@ -6,10 +6,12 @@ declare(strict_types=1);
namespace Chamilo\Tests\CourseBundle\Repository;
use Chamilo\CoreBundle\Repository\Node\CourseRepository;
use Chamilo\CourseBundle\Entity\CAnnouncement;
use Chamilo\CourseBundle\Repository\CAnnouncementRepository;
use Chamilo\Tests\AbstractApiTest;
use Chamilo\Tests\ChamiloTestTrait;
use DateTime;
class CAnnouncementRepositoryTest extends AbstractApiTest
{
@ -17,24 +19,37 @@ class CAnnouncementRepositoryTest extends AbstractApiTest
public function testCreate(): void
{
self::bootKernel();
$em = $this->getEntityManager();
$repo = self::getContainer()->get(CAnnouncementRepository::class);
$courseRepo = self::getContainer()->get(CourseRepository::class);
$course = $this->createCourse('new');
$teacher = $this->createUser('teacher');
$item = (new CAnnouncement())
$announcement = (new CAnnouncement())
->setTitle('item')
->setContent('content')
->setDisplayOrder(1)
->setEmailSent(false)
->setEndDate(new DateTime())
->setParent($course)
->setCreator($teacher)
;
$this->assertHasNoEntityViolations($item);
$em->persist($item);
$this->assertHasNoEntityViolations($announcement);
$em->persist($announcement);
$em->flush();
$this->assertSame('item', (string) $item);
$this->assertSame('item', (string) $announcement);
$this->assertFalse($announcement->getEmailSent());
$this->assertNotNull($announcement->getEndDate());
$this->assertSame($announcement->getResourceIdentifier(), $announcement->getIid());
$this->assertSame(0, $announcement->getAttachments()->count());
$this->assertSame(1, $repo->count([]));
$courseRepo->delete($course);
$this->assertSame(0, $courseRepo->count([]));
$this->assertSame(0, $repo->count([]));
}
}

@ -11,6 +11,7 @@ use Chamilo\CourseBundle\Entity\CAttendance;
use Chamilo\CourseBundle\Entity\CAttendanceCalendar;
use Chamilo\CourseBundle\Entity\CAttendanceResult;
use Chamilo\CourseBundle\Entity\CAttendanceSheet;
use Chamilo\CourseBundle\Entity\CAttendanceSheetLog;
use Chamilo\CourseBundle\Repository\CAttendanceRepository;
use Chamilo\Tests\AbstractApiTest;
use Chamilo\Tests\ChamiloTestTrait;
@ -38,7 +39,7 @@ class CAttendanceRepositoryTest extends AbstractApiTest
->setActive(1)
->setAttendanceQualifyMax(100)
->setAttendanceQualifyTitle('title')
->setAttendanceWeight(100)
->setAttendanceWeight(100.0)
->setParent($course)
->setCreator($teacher)
;
@ -48,6 +49,12 @@ class CAttendanceRepositoryTest extends AbstractApiTest
$this->assertSame('item', (string) $item);
$this->assertSame($item->getResourceIdentifier(), $item->getIid());
$this->assertSame(1, $item->getActive());
$this->assertSame('desc', $item->getDescription());
$this->assertSame(100, $item->getAttendanceQualifyMax());
$this->assertSame(100.0, $item->getAttendanceWeight());
$this->assertSame(1, $item->getLocked());
$this->assertSame(1, $repo->count([]));
$courseRepo->delete($course);
$this->assertSame(0, $repo->count([]));
@ -95,6 +102,16 @@ class CAttendanceRepositoryTest extends AbstractApiTest
->setPresence(true)
;
$em->persist($sheet);
$log = (new CAttendanceSheetLog())
->setUser($student)
->setAttendance($attendance)
->setCalendarDateValue(new DateTime())
->setLasteditDate(new DateTime())
->setLasteditType('last')
;
$em->persist($log);
$em->flush();
$em->clear();

@ -0,0 +1,56 @@
<?php
declare(strict_types=1);
/* For licensing terms, see /license.txt */
namespace Chamilo\Tests\CourseBundle\Repository;
use Chamilo\CoreBundle\Repository\Node\CourseRepository;
use Chamilo\CourseBundle\Entity\CGlossary;
use Chamilo\CourseBundle\Repository\CGlossaryRepository;
use Chamilo\Tests\AbstractApiTest;
use Chamilo\Tests\ChamiloTestTrait;
use Symfony\Component\Routing\RouterInterface;
class CGlossaryRepositoryTest extends AbstractApiTest
{
use ChamiloTestTrait;
public function testCreate(): void
{
$em = $this->getEntityManager();
$glossaryRepo = self::getContainer()->get(CGlossaryRepository::class);
$courseRepo = self::getContainer()->get(CourseRepository::class);
$course = $this->createCourse('new');
$teacher = $this->createUser('teacher');
$glossary = (new CGlossary())
->setName('glossary')
->setDescription('desc')
->setDisplayOrder(1)
->setParent($course)
->setCreator($teacher)
->addCourseLink($course)
;
$this->assertHasNoEntityViolations($glossary);
$em->persist($glossary);
$em->flush();
$this->assertSame('glossary', (string) $glossary);
$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());
$this->assertSame(1, $glossaryRepo->count([]));
$courseRepo->delete($course);
$this->assertSame(0, $courseRepo->count([]));
$this->assertSame(0, $glossaryRepo->count([]));
}
}

@ -0,0 +1,48 @@
<?php
declare(strict_types=1);
/* For licensing terms, see /license.txt */
namespace Chamilo\Tests\CourseBundle\Repository;
use Chamilo\CoreBundle\Repository\Node\CourseRepository;
use Chamilo\CourseBundle\Entity\CNotebook;
use Chamilo\CourseBundle\Repository\CNotebookRepository;
use Chamilo\Tests\AbstractApiTest;
use Chamilo\Tests\ChamiloTestTrait;
class CNotebookRepositoryTest extends AbstractApiTest
{
use ChamiloTestTrait;
public function testCreate(): void
{
$em = $this->getEntityManager();
$notebookRepo = self::getContainer()->get(CNotebookRepository::class);
$courseRepo = self::getContainer()->get(CourseRepository::class);
$course = $this->createCourse('new');
$teacher = $this->createUser('teacher');
$notebook = (new CNotebook())
->setTitle('item')
->setDescription('desc')
->setParent($course)
->setCreator($teacher)
;
$this->assertHasNoEntityViolations($notebook);
$em->persist($notebook);
$em->flush();
$this->assertSame('item', (string) $notebook);
$this->assertSame($notebook->getResourceIdentifier(), $notebook->getIid());
$this->assertSame(1, $notebookRepo->count([]));
$courseRepo->delete($course);
$this->assertSame(0, $courseRepo->count([]));
$this->assertSame(0, $notebookRepo->count([]));
}
}

@ -22,6 +22,7 @@ class CStudentPublicationRepositoryTest extends AbstractApiTest
{
$em = $this->getEntityManager();
$repo = self::getContainer()->get(CStudentPublicationRepository::class);
$courseRepo = self::getContainer()->get(CourseRepository::class);
$course = $this->createCourse('new');
$teacher = $this->createUser('teacher');
@ -47,6 +48,7 @@ class CStudentPublicationRepositoryTest extends AbstractApiTest
->setFiletype('folder')
->setWeight(100)
->setCreator($teacher)
->addCourseLink($course)
;
$this->assertHasNoEntityViolations($item);
$em->persist($item);
@ -54,6 +56,15 @@ class CStudentPublicationRepositoryTest extends AbstractApiTest
$this->assertSame('publi', (string) $item);
$this->assertSame(1, $repo->count([]));
$count = $repo->countUserPublications($teacher, $course);
$this->assertSame(1, $count);
$count = $repo->countCoursePublications($course);
$this->assertSame(1, $count);
$courseRepo->delete($course);
$this->assertSame(0, $repo->count([]));
}
public function testCreateWithPublicationRelUser(): void

@ -27,6 +27,7 @@ class CSurveyRepositoryTest extends AbstractApiTest
{
$em = $this->getEntityManager();
$surveyRepo = self::getContainer()->get(CSurveyRepository::class);
$courseRepo = self::getContainer()->get(CourseRepository::class);
$course = $this->createCourse('new');
$teacher = $this->createUser('teacher');
@ -51,6 +52,7 @@ class CSurveyRepositoryTest extends AbstractApiTest
->setLang('lang')
->setParent($course)
->setCreator($teacher)
->addCourseLink($course)
;
$this->assertHasNoEntityViolations($survey);
@ -59,6 +61,12 @@ class CSurveyRepositoryTest extends AbstractApiTest
$this->assertSame('survey', (string) $survey);
$this->assertSame(1, $surveyRepo->count([]));
$qb = $surveyRepo->findAllByCourse($course);
$this->assertCount(1, $qb->getQuery()->getResult());
$courseRepo->delete($course);
$this->assertSame(0, $surveyRepo->count([]));
}
public function testCreateWithQuestions(): void

Loading…
Cancel
Save