Tests: Add phpunit tests

pull/3965/head
Julio 5 years ago
parent e1026d3308
commit 06ba9d3275
  1. 4
      public/main/inc/lib/AnnouncementManager.php
  2. 2
      public/main/lp/lp_subscribe_users_to_category.php
  3. 18
      src/CoreBundle/Entity/AbstractResource.php
  4. 1
      src/CoreBundle/Entity/AccessUrl.php
  5. 45
      tests/CoreBundle/Repository/Node/AccessUrlRepositoryTest.php

@ -683,7 +683,7 @@ class AnnouncementManager
foreach ($send_to['groups'] as $group) {
$group = api_get_group_entity($group);
if ($group) {
$announcement->addGroupLink($course, $session, $group);
$announcement->addGroupLink($course, $group, $session);
}
}
}
@ -884,7 +884,7 @@ class AnnouncementManager
// storing the selected groups
if (is_array($send_to['groups'])) {
foreach ($send_to['groups'] as $groupId) {
$announcement->addGroupLink($course, $session, api_get_group_entity($groupId));
$announcement->addGroupLink($course, api_get_group_entity($groupId), $session);
}
}

@ -322,7 +322,7 @@ if ($formUsers->validate()) {
foreach ($groups as $groupId) {
$group = api_get_group_entity($groupId);
$category->addGroupLink($group);
$category->addGroupLink($course, $group);
}
$em->persist($category);

@ -189,7 +189,7 @@ abstract class AbstractResource
return $this;
}
public function addGroupLink(Course $course, Session $session = null, CGroup $group = null)
public function addGroupLink(Course $course, CGroup $group, Session $session = null)
{
$resourceLink = (new ResourceLink())
->setCourse($course)
@ -290,7 +290,7 @@ abstract class AbstractResource
Session $session = null,
) {
foreach ($groupList as $group) {
$this->addGroupLink($course, $session, $group);
$this->addGroupLink($course, $group, $session);
}
return $this;
@ -508,29 +508,29 @@ abstract class AbstractResource
*/
public static function separateUsersGroups(array $to): array
{
$send_to = ['groups' => [], 'users' => []];
$sendTo = ['groups' => [], 'users' => []];
foreach ($to as $to_item) {
if (empty($to_item)) {
foreach ($to as $toItem) {
if (empty($toItem)) {
continue;
}
$parts = explode(':', $to_item);
$parts = explode(':', $toItem);
$type = $parts[0] ?? '';
$id = $parts[1] ?? '';
switch ($type) {
case 'GROUP':
$send_to['groups'][] = (int) $id;
$sendTo['groups'][] = (int) $id;
break;
case 'USER':
$send_to['users'][] = (int) $id;
$sendTo['users'][] = (int) $id;
break;
}
}
return $send_to;
return $sendTo;
}
}

@ -197,6 +197,7 @@ class AccessUrl extends AbstractResource implements ResourceInterface
/**
* @ORM\Column(name="email", type="string", length=255, nullable=true)
*/
#[Assert\Email]
protected ?string $email = null;
public function __construct()

@ -7,9 +7,11 @@ declare(strict_types=1);
namespace Chamilo\Tests\CoreBundle\Repository\Node;
use Chamilo\CoreBundle\Entity\AccessUrl;
use Chamilo\CoreBundle\Entity\AccessUrlRelCourse;
use Chamilo\CoreBundle\Entity\ResourceType;
use Chamilo\CoreBundle\Repository\Node\AccessUrlRepository;
use Chamilo\Tests\ChamiloTestTrait;
use Doctrine\Common\Collections\ArrayCollection;
use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase;
class AccessUrlRepositoryTest extends KernelTestCase
@ -55,6 +57,15 @@ class AccessUrlRepositoryTest extends KernelTestCase
->setUrl('https://example.org')
->setActive(1)
->setCreator($admin)
->setCreatedBy($admin->getId())
->setDescription('test')
->setEmail('test@example.com')
->setLimitDiskSpace(1000)
->setLimitCourses(1000)
->setLimitSessions(1000)
->setLimitTeachers(1000)
->setLimitUsers(1000)
->setLimitActiveCourses(1000)
;
$this->assertHasNoEntityViolations($accessUrl);
@ -73,4 +84,38 @@ class AccessUrlRepositoryTest extends KernelTestCase
$this->assertSame(2, $repo->count([]));
$this->assertSame(0, $accessUrl->getSettings()->count());
}
public function testSetCourses(): void
{
self::bootKernel();
$repo = self::getContainer()->get(AccessUrlRepository::class);
$admin = $this->getUser('admin');
$accessUrl = (new AccessUrl())
->setUrl('https://example.org')
->setActive(1)
->setCreator($admin)
;
$repo->create($accessUrl);
/** @var AccessUrl $accessUrl */
$accessUrl = $repo->find($accessUrl->getId());
$course = $this->createCourse('test');
$accessUrlCourse = (new AccessUrlRelCourse())
->setCourse($course)
->setUrl($accessUrl)
;
$collection = new ArrayCollection();
$collection->add($accessUrlCourse);
$accessUrl->setCourses($collection);
/** @var AccessUrl $accessUrl */
$accessUrl = $repo->find($accessUrl->getId());
$this->assertSame(1, $accessUrl->getCourses()->count());
}
}

Loading…
Cancel
Save