Tests: Add phpunit tests

pull/3984/head
Julio 5 years ago
parent ceebf7e06c
commit 2338dd1ddd
  1. 10
      src/CoreBundle/Entity/Sequence.php
  2. 3
      src/CoreBundle/Entity/SkillRelSkill.php
  3. 61
      src/CoreBundle/Entity/SkillRelUser.php
  4. 8
      src/CoreBundle/Repository/SkillRepository.php
  5. 11
      tests/CoreBundle/Repository/SequenceRepositoryTest.php
  6. 43
      tests/CoreBundle/Repository/SkillRepositoryTest.php
  7. 35
      tests/CoreBundle/Repository/SysAnnouncementRepositoryTest.php

@ -11,8 +11,6 @@ use Fhaculty\Graph\Graph;
use Gedmo\Timestampable\Traits\TimestampableEntity;
/**
* Class Sequence.
*
* @ORM\Table(name="sequence")
* @ORM\Entity(repositoryClass="Chamilo\CoreBundle\Repository\SequenceRepository")
*/
@ -58,9 +56,6 @@ class Sequence
return $this->name;
}
/**
* @return Sequence
*/
public function setName(string $name): self
{
$this->name = $name;
@ -83,10 +78,7 @@ class Sequence
return $this;
}
/**
* @return bool
*/
public function hasGraph()
public function hasGraph(): bool
{
return !empty($this->graph);
}

@ -7,6 +7,7 @@ declare(strict_types=1);
namespace Chamilo\CoreBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
/**
* @ORM\Table(name="skill_rel_skill")
@ -36,11 +37,13 @@ class SkillRelSkill
/**
* @ORM\Column(name="relation_type", type="integer", nullable=false)
*/
#[Assert\NotBlank]
protected int $relationType;
/**
* @ORM\Column(name="level", type="integer", nullable=false)
*/
#[Assert\NotBlank]
protected int $level;
public function getParent(): ?Skill

@ -12,10 +12,9 @@ use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\Common\Collections\Criteria;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
/**
* SkillRelUser.
*
* @ORM\Table(
* name="skill_rel_user",
* indexes={
@ -95,11 +94,13 @@ class SkillRelUser
/**
* @ORM\Column(name="assigned_by", type="integer", nullable=false)
*/
#[Assert\NotBlank]
protected int $assignedBy;
/**
* @ORM\Column(name="argumentation", type="text")
*/
#[Assert\NotBlank]
protected string $argumentation;
/**
@ -115,12 +116,7 @@ class SkillRelUser
$this->acquiredSkillAt = new DateTime();
}
/**
* Set skill.
*
* @return SkillRelUser
*/
public function setSkill(Skill $skill)
public function setSkill(Skill $skill): self
{
$this->skill = $skill;
@ -137,12 +133,7 @@ class SkillRelUser
return $this->skill;
}
/**
* Set course.
*
* @return SkillRelUser
*/
public function setCourse(Course $course)
public function setCourse(Course $course): self
{
$this->course = $course;
@ -159,12 +150,7 @@ class SkillRelUser
return $this->course;
}
/**
* Set session.
*
* @return SkillRelUser
*/
public function setSession(Session $session)
public function setSession(Session $session): self
{
$this->session = $session;
@ -181,12 +167,7 @@ class SkillRelUser
return $this->session;
}
/**
* Set acquiredSkillAt.
*
* @return SkillRelUser
*/
public function setAcquiredSkillAt(DateTime $acquiredSkillAt)
public function setAcquiredSkillAt(DateTime $acquiredSkillAt): self
{
$this->acquiredSkillAt = $acquiredSkillAt;
@ -203,12 +184,7 @@ class SkillRelUser
return $this->acquiredSkillAt;
}
/**
* Set assignedBy.
*
* @return SkillRelUser
*/
public function setAssignedBy(int $assignedBy)
public function setAssignedBy(int $assignedBy): self
{
$this->assignedBy = $assignedBy;
@ -235,12 +211,7 @@ class SkillRelUser
return $this->id;
}
/**
* Set acquiredLevel.
*
* @return SkillRelUser
*/
public function setAcquiredLevel(Level $acquiredLevel)
public function setAcquiredLevel(Level $acquiredLevel): self
{
$this->acquiredLevel = $acquiredLevel;
@ -257,12 +228,7 @@ class SkillRelUser
return $this->acquiredLevel;
}
/**
* Set argumentationAuthorId.
*
* @return SkillRelUser
*/
public function setArgumentationAuthorId(int $argumentationAuthorId)
public function setArgumentationAuthorId(int $argumentationAuthorId): self
{
$this->argumentationAuthorId = $argumentationAuthorId;
@ -279,12 +245,7 @@ class SkillRelUser
return $this->argumentationAuthorId;
}
/**
* Set argumentation.
*
* @return SkillRelUser
*/
public function setArgumentation(string $argumentation)
public function setArgumentation(string $argumentation): self
{
$this->argumentation = $argumentation;

@ -51,14 +51,8 @@ class SkillRepository extends ServiceEntityRepository
/**
* Get the last acquired skill by a user on course and/or session.
*
* @param User $user The user
* @param Course $course The course
* @param Session $session The session
*
* @return Skill
*/
public function getLastByUser(User $user, Course $course = null, Session $session = null)
public function getLastByUser(User $user, Course $course = null, Session $session = null): ?Skill
{
$qb = $this->createQueryBuilder('s');

@ -22,14 +22,17 @@ class SequenceRepositoryTest extends AbstractApiTest
$em = $this->getEntityManager();
$repo = self::getContainer()->get(SequenceRepository::class);
$item = (new Sequence())
->setName('session 1')
$sequence = (new Sequence())
->setName('Sequence 1')
->setGraph('')
;
$this->assertHasNoEntityViolations($item);
$em->persist($item);
$this->assertHasNoEntityViolations($sequence);
$em->persist($sequence);
$em->flush();
$this->assertFalse($sequence->hasGraph());
$this->assertSame('Sequence 1', (string) $sequence);
$this->assertFalse($sequence->getUnSerializeGraph());
$this->assertSame(1, $repo->count([]));
}
}

@ -8,6 +8,7 @@ namespace Chamilo\Tests\CoreBundle\Repository;
use Chamilo\CoreBundle\Entity\Asset;
use Chamilo\CoreBundle\Entity\Skill;
use Chamilo\CoreBundle\Entity\SkillRelUser;
use Chamilo\CoreBundle\Repository\AssetRepository;
use Chamilo\CoreBundle\Repository\SkillRepository;
use Chamilo\Tests\AbstractApiTest;
@ -47,6 +48,48 @@ class SkillRepositoryTest extends AbstractApiTest
$this->assertSame(0, $skill->getSkills()->count());
}
public function testGetLastByUser(): void
{
self::bootKernel();
$skillRepo = self::getContainer()->get(SkillRepository::class);
$accessUrl = $this->getAccessUrl();
$skill = (new Skill())
->setName('php')
->setShortCode('php')
->setDescription('desc')
->setStatus(Skill::STATUS_ENABLED)
->setCriteria('criteria')
->setIcon('icon')
->setAccessUrlId($accessUrl->getId())
;
$skillRepo->update($skill);
$course = $this->createCourse('new');
$session = $this->createSession('new');
$user = $this->createUser('test');
$em = $this->getEntityManager();
$skillRelUser = (new SkillRelUser())
->setSkill($skill)
->setCourse($course)
->setSession($session)
->setUser($user)
->setArgumentation('argumentation')
->setAssignedBy(1)
->setArgumentationAuthorId(1)
;
$this->assertHasNoEntityViolations($skillRelUser);
$em->persist($skillRelUser);
$em->flush();
$skill = $skillRepo->getLastByUser($user, $course, $session);
$this->assertNotNull($skill);
}
public function testDeleteSkill(): void
{
self::bootKernel();

@ -6,6 +6,8 @@ declare(strict_types=1);
namespace Chamilo\Tests\CoreBundle\Repository;
use Chamilo\CoreBundle\Entity\Career;
use Chamilo\CoreBundle\Entity\Promotion;
use Chamilo\CoreBundle\Entity\SysAnnouncement;
use Chamilo\CoreBundle\Repository\SysAnnouncementRepository;
use Chamilo\Tests\ChamiloTestTrait;
@ -66,9 +68,40 @@ class SysAnnouncementRepositoryTest extends WebTestCase
public function testGetAnnouncements(): void
{
self::bootKernel();
$em = $this->getEntityManager();
$repo = self::getContainer()->get(SysAnnouncementRepository::class);
$user = $this->getUser('admin');
$items = $repo->getAnnouncements($user, $this->getAccessUrl(), 'en');
$items = $repo->getAnnouncements($user, $this->getAccessUrl(), '');
$this->assertSame(1, \count($items));
$career = (new Career())
->setName('Doctor')
;
$em->persist($career);
$promotion = (new Promotion())
->setName('2000')
->setDescription('Promotion of 2000')
->setCareer($career)
->setStatus(1)
;
$em->persist($promotion);
$em->flush();
$sysAnnouncement = (new SysAnnouncement())
->setTitle('Welcome to Chamilo!')
->setContent('content')
->setUrl($this->getAccessUrl())
->setDateStart(new DateTime())
->setDateEnd(new DateTime('now +30 days'))
->setCareer($career)
->addRole('ROLE_ANONYMOUS')
->addRole('ROLE_USER') // connected users
;
$em->persist($sysAnnouncement);
$em->flush();
$items = $repo->getAnnouncements($user, $this->getAccessUrl(), '');
$this->assertSame(1, \count($items));
}
}

Loading…
Cancel
Save