Tests: Add phpunit tests

pull/3984/head
Julio 5 years ago
parent 4a78d4544e
commit ebf76cfb98
  1. 42
      src/CoreBundle/Entity/Skill.php
  2. 18
      src/CourseBundle/Entity/CQuizRelQuestion.php
  3. 10
      tests/CoreBundle/Repository/LanguageRepositoryTest.php
  4. 3
      tests/CoreBundle/Repository/MessageRepositoryTest.php
  5. 27
      tests/CoreBundle/Repository/Node/UserRepositoryTest.php
  6. 94
      tests/CoreBundle/Repository/Node/UsergroupRepositoryTest.php
  7. 14
      tests/CoreBundle/Repository/SessionRepositoryTest.php
  8. 11
      tests/CoreBundle/Repository/SkillRepositoryTest.php
  9. 10
      tests/CoreBundle/Repository/TagRepositoryTest.php
  10. 65
      tests/CourseBundle/Repository/CQuizQuestionRepositoryTest.php
  11. 2
      tests/CourseBundle/Repository/CQuizRepositoryTest.php

@ -139,6 +139,8 @@ class Skill
$this->issuedSkills = new ArrayCollection();
$this->items = new ArrayCollection();
$this->courses = new ArrayCollection();
$this->gradeBookCategories = new ArrayCollection();
$this->skills = new ArrayCollection();
$this->icon = '';
$this->description = '';
$this->status = self::STATUS_ENABLED;
@ -372,6 +374,46 @@ class Skill
return $this;
}
/**
* @return SkillRelSkill[]|Collection
*/
public function getSkills()
{
return $this->skills;
}
/**
* @param SkillRelSkill[]|Collection $skills
*
* @return Skill
*/
public function setSkills($skills): self
{
$this->skills = $skills;
return $this;
}
/**
* @return SkillRelGradebook[]|Collection
*/
public function getGradeBookCategories()
{
return $this->gradeBookCategories;
}
/**
* @param SkillRelGradebook[]|Collection $gradeBookCategories
*
* @return Skill
*/
public function setGradeBookCategories($gradeBookCategories): self
{
$this->gradeBookCategories = $gradeBookCategories;
return $this;
}
public function hasAsset(): bool
{
return null !== $this->asset;

@ -56,6 +56,18 @@ class CQuizRelQuestion
return $this;
}
public function getQuestion(): CQuizQuestion
{
return $this->question;
}
public function setQuestion(CQuizQuestion $question): self
{
$this->question = $question;
return $this;
}
/**
* Get questionOrder.
*
@ -71,8 +83,10 @@ class CQuizRelQuestion
return $this->quiz;
}
public function getQuestion(): CQuizQuestion
public function setQuiz(CQuiz $quiz): self
{
return $this->question;
$this->quiz = $quiz;
return $this;
}
}

@ -22,16 +22,20 @@ class LanguageRepositoryTest extends AbstractApiTest
$em = $this->getEntityManager();
$repo = self::getContainer()->get(LanguageRepository::class);
$defaultCount = $repo->count([]);
$item = (new Language())
$language = (new Language())
->setAvailable(true)
->setOriginalName('language')
->setEnglishName('language')
->setIsocode('lan')
;
$this->assertHasNoEntityViolations($item);
$em->persist($item);
$this->assertHasNoEntityViolations($language);
$em->persist($language);
$em->flush();
$this->assertSame('language', $language->getOriginalName());
$this->assertSame('language', $language->getEnglishName());
$this->assertSame('lan', $language->getIsocode());
$this->assertIsInt($language->getId());
$this->assertSame($defaultCount + 1, $repo->count([]));
}
}

@ -62,6 +62,7 @@ class MessageRepositoryTest extends AbstractApiTest
// One receiver in MessageRelUser.
$this->assertSame(1, $messageRelUserRepo->count([]));
$this->assertSame(0, $message->getVotes());
$this->assertSame(1, $message->getReceivers()->count());
// Check if message was schedule to be sent.
@ -195,6 +196,8 @@ class MessageRepositoryTest extends AbstractApiTest
->setParent($message->getSender())
->setCreator($message->getSender())
;
$message->addAttachment($attachment);
$em->persist($attachment);
$messageAttachmentRepo->addFile($attachment, $file);
$em->flush();

@ -9,6 +9,7 @@ use Chamilo\CoreBundle\Entity\User;
use Chamilo\CoreBundle\Repository\Node\UserRepository;
use Chamilo\Tests\AbstractApiTest;
use Chamilo\Tests\ChamiloTestTrait;
use DateTime;
class UserRepositoryTest extends AbstractApiTest
{
@ -111,27 +112,47 @@ class UserRepositoryTest extends AbstractApiTest
$userRepo = self::getContainer()->get(UserRepository::class);
$user = (new User())
->setSkipResourceNode(true)
->setLastname('Doe')
->setFirstname('Joe')
->setUsername('admin2')
->setStatus(1)
->setActive(true)
->setDateOfBirth(new DateTime())
->setBiography('bio')
->setExpired(false)
->setTeach('teach')
->setApiToken('tok')
->setAuthSource('auth')
->setProductions('prod')
->setCompetences('comp')
->setDiplomas('diploma')
->setOpenarea('open')
->setGender('m')
->setTheme('chamilo')
->setPlainPassword('admin2')
->setEmail('admin@example.org')
->setOfficialCode('ADMIN')
->setCreatorId(1)
->setSkipResourceNode(true)
->addUserAsAdmin()//->addGroup($group)
;
$user->setRoleFromStatus(COURSEMANAGER);
$em->persist($user);
$userRepo->updateUser($user);
$userRepo->addUserToResourceNode($user->getId(), $user->getId());
$em->flush();
//$this->assertTrue($user->isAdmin());
//$this->assertTrue($user->isSuperAdmin());
$this->assertSame(3, $userRepo->count([]));
$this->assertSame(3, \count($user->getRoles()));
$this->assertSame('Joe Doe', $user->getCompleteNameWithClasses());
$this->assertSame('Joe Doe', $user->getFullname());
$this->assertSame(0, \count($user->getCurrentlyAccessibleSessions()));
$this->assertSame('/img/icons/svg/identifier_admin.svg', $user->getIconStatus());
}
public function testCreateUserWithApi(): void

@ -7,7 +7,13 @@ declare(strict_types=1);
namespace Chamilo\Tests\CoreBundle\Repository\Node;
use Chamilo\CoreBundle\Entity\Usergroup;
use Chamilo\CoreBundle\Entity\UsergroupRelCourse;
use Chamilo\CoreBundle\Entity\UsergroupRelQuestion;
use Chamilo\CoreBundle\Entity\UsergroupRelSession;
use Chamilo\CoreBundle\Entity\UsergroupRelUser;
use Chamilo\CoreBundle\Entity\UserGroupRelUserGroup;
use Chamilo\CoreBundle\Repository\Node\UsergroupRepository;
use Chamilo\CourseBundle\Entity\CQuizQuestion;
use Chamilo\Tests\ChamiloTestTrait;
use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase;
@ -22,12 +28,22 @@ class UsergroupRepositoryTest extends KernelTestCase
$group = (new Usergroup())
->setName('test')
->setDescription('desc')
->setGroupType(1)
->setUrl('url')
->setAuthorId('')
->setAllowMembersToLeaveGroup(1)
->setVisibility(GROUP_PERMISSION_OPEN)
->addAccessUrl($this->getAccessUrl())
->setCreator($this->getUser('admin'))
;
$this->assertHasNoEntityViolations($group);
$repo->create($group);
$this->assertSame('test', (string) $group);
$this->assertSame('/img/icons/64/group_na.png', $group->getDefaultIllustration(64));
$this->assertSame(1, $repo->count([]));
$group->setName('test2');
@ -38,4 +54,82 @@ class UsergroupRepositoryTest extends KernelTestCase
$repo->delete($group);
$this->assertSame(0, $repo->count([]));
}
public function testCreateWithAssociations(): void
{
self::bootKernel();
$repo = self::getContainer()->get(UsergroupRepository::class);
$em = $this->getEntityManager();
$group = (new Usergroup())
->setName('test')
->addAccessUrl($this->getAccessUrl())
->setCreator($this->getUser('admin'))
;
$repo->create($group);
$this->assertSame(1, $repo->count([]));
$course = $this->createCourse('new');
$userGroupRelCourse = (new UsergroupRelCourse())
->setCourse($course)
->setUsergroup($group)
;
$em->persist($userGroupRelCourse);
$teacher = $this->createUser('teacher');
$question = (new CQuizQuestion())
->setQuestionCode('code')
->setQuestion('question')
->setType(1)
->setLevel(1)
->setPonderation(100)
->setPosition(1)
->setParent($course)
->addCourseLink($course)
->setCreator($teacher)
;
$em->persist($question);
$userGroupRelQuestion = (new UsergroupRelQuestion())
->setQuestion($question)
->setUsergroup($group)
;
$em->persist($userGroupRelQuestion);
$session = $this->createSession('session');
$userGroupRelSession = (new UsergroupRelSession())
->setSession($session)
->setUsergroup($group)
;
$em->persist($userGroupRelSession);
$testUser = $this->createUser('test');
$userGroupRelUser = (new UsergroupRelUser())
->setUser($testUser)
->setUsergroup($group)
;
$em->persist($userGroupRelUser);
//UserGroupRelUserGroup.php
$group->getCourses()->add($userGroupRelCourse);
$group->getQuestions()->add($userGroupRelQuestion);
$group->getSessions()->add($userGroupRelSession);
$group->getUsers()->add($userGroupRelUser);
$em->persist($group);
$em->flush();
$this->assertSame(1, $group->getCourses()->count());
$this->assertSame(1, $group->getQuestions()->count());
$this->assertSame(1, $group->getSessions()->count());
$this->assertSame(1, $group->getUsers()->count());
$repo->delete($group);
$this->assertSame(0, $repo->count([]));
}
}

@ -7,6 +7,7 @@ declare(strict_types=1);
namespace Chamilo\Tests\CoreBundle\Repository;
use Chamilo\CoreBundle\Entity\Session;
use Chamilo\CoreBundle\Entity\SessionCategory;
use Chamilo\CoreBundle\Repository\SessionRepository;
use Chamilo\Tests\AbstractApiTest;
use Chamilo\Tests\ChamiloTestTrait;
@ -25,10 +26,22 @@ class SessionRepositoryTest extends AbstractApiTest
$url = $this->getAccessUrl();
$coach = $this->createUser('coach');
$category = (new SessionCategory())
->setName('cat')
->setUrl($this->getAccessUrl())
;
$em->persist($category);
$em->flush();
$this->assertSame('cat', (string) $category);
$this->assertNull($category->getDateStart());
$this->assertNull($category->getDateEnd());
$session = (new Session())
->setName('session 1')
->setGeneralCoach($coach)
->addAccessUrl($url)
->setCategory($category)
->setDuration(100)
->setShowDescription(true)
@ -43,6 +56,7 @@ class SessionRepositoryTest extends AbstractApiTest
$em->flush();
$this->assertSame(1, $repo->count([]));
$this->assertNotNull($session->getCategory());
$this->assertSame('session 1', (string) $session);
$this->assertSame(0, \count($session->getAllUsersFromCourse(0)));

@ -28,14 +28,23 @@ class SkillRepositoryTest extends AbstractApiTest
$skill = (new Skill())
->setName('php')
->setShortCode('php')
->setDescription('desc')
->setStatus(Skill::STATUS_ENABLED)
->setCriteria('criteria')
->setIcon('icon')
->setAccessUrlId($accessUrl->getId())
;
$this->assertHasNoEntityViolations($skill);
$skillRepo->update($skill);
// By default, there's 1 root skill + this newwly skill created.
// By default, there's 1 root skill + this newly skill created.
$this->assertSame(2, $skillRepo->count([]));
$this->assertSame(0, $skill->getItems()->count());
$this->assertSame(0, $skill->getCourses()->count());
$this->assertSame(0, $skill->getIssuedSkills()->count());
$this->assertSame(0, $skill->getGradeBookCategories()->count());
$this->assertSame(0, $skill->getSkills()->count());
}
public function testDeleteSkill(): void

@ -8,6 +8,7 @@ namespace Chamilo\Tests\CoreBundle\Repository;
use Chamilo\CoreBundle\Entity\ExtraField;
use Chamilo\CoreBundle\Entity\Tag;
use Chamilo\CoreBundle\Entity\UserRelTag;
use Chamilo\CoreBundle\Repository\TagRepository;
use Chamilo\Tests\AbstractApiTest;
use Chamilo\Tests\ChamiloTestTrait;
@ -40,6 +41,15 @@ class TagRepositoryTest extends AbstractApiTest
;
$this->assertHasNoEntityViolations($tag);
$em->persist($tag);
$user = $this->createUser('test');
$userRelTag = (new UserRelTag())
->setUser($user)
->setTag($tag)
;
$em->persist($userRelTag);
$em->flush();
$this->assertSame($defaultCount + 1, $repo->count([]));

@ -0,0 +1,65 @@
<?php
declare(strict_types=1);
/* For licensing terms, see /license.txt */
namespace Chamilo\Tests\CourseBundle\Repository;
use Chamilo\CourseBundle\Entity\CQuiz;
use Chamilo\CourseBundle\Entity\CQuizQuestion;
use Chamilo\CourseBundle\Entity\CQuizRelQuestion;
use Chamilo\CourseBundle\Repository\CQuizQuestionRepository;
use Chamilo\Tests\AbstractApiTest;
use Chamilo\Tests\ChamiloTestTrait;
class CQuizQuestionRepositoryTest extends AbstractApiTest
{
use ChamiloTestTrait;
public function testCreate(): void
{
self::bootKernel();
$em = $this->getEntityManager();
$repo = self::getContainer()->get(CQuizQuestionRepository::class);
$course = $this->createCourse('new');
$teacher = $this->createUser('teacher');
$exercise = (new CQuiz())
->setTitle('exercise')
->setParent($course)
->setCreator($teacher)
;
$em->persist($exercise);
$question = (new CQuizQuestion())
->setQuestionCode('code')
->setQuestion('question')
->setDescription('desc')
->setType(1)
->setExtra('extra')
->setFeedback('feedback')
->setLevel(1)
->setPonderation(100)
->setPosition(1)
->setParent($course)
->addCourseLink($course)
->setCreator($teacher)
;
$em->persist($question);
$quizRelQuestion = (new CQuizRelQuestion())
->setQuestion($question)
->setQuiz($exercise)
->setQuestionOrder(1)
;
$exercise->getQuestions()->add($quizRelQuestion);
$em->flush();
$this->assertSame(1, $exercise->getQuestions()->count());
$this->assertSame(1, $repo->count([]));
}
}

@ -37,6 +37,8 @@ class CQuizRepositoryTest extends AbstractApiTest
$this->assertSame('exercise', (string) $item);
$this->assertSame(1, $repo->count([]));
$this->assertSame(0, $item->getQuestionsCategories()->count());
$repo->updateNodeForResource($item);
$link = $repo->getLink($item, $this->getContainer()->get('router'));

Loading…
Cancel
Save