parent
a73c9918e5
commit
bb56e66d25
@ -0,0 +1,81 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
declare(strict_types=1); |
||||||
|
|
||||||
|
/* For licensing terms, see /license.txt */ |
||||||
|
|
||||||
|
namespace Chamilo\Tests\CourseBundle\Repository; |
||||||
|
|
||||||
|
use Chamilo\CoreBundle\Entity\ResourceType; |
||||||
|
use Chamilo\CoreBundle\Entity\Tool; |
||||||
|
use Chamilo\CoreBundle\Repository\Node\CourseRepository; |
||||||
|
use Chamilo\CoreBundle\Tool\HandlerCollection; |
||||||
|
use Chamilo\CoreBundle\Tool\ToolChain; |
||||||
|
use Chamilo\CourseBundle\Entity\CAnnouncement; |
||||||
|
use Chamilo\CourseBundle\Entity\CAnnouncementAttachment; |
||||||
|
use Chamilo\CourseBundle\Entity\CCalendarEvent; |
||||||
|
use Chamilo\CourseBundle\Entity\CTool; |
||||||
|
use Chamilo\CourseBundle\Entity\CToolIntro; |
||||||
|
use Chamilo\CourseBundle\Repository\CAnnouncementAttachmentRepository; |
||||||
|
use Chamilo\CourseBundle\Repository\CAnnouncementRepository; |
||||||
|
use Chamilo\CourseBundle\Repository\CToolIntroRepository; |
||||||
|
use Chamilo\CourseBundle\Repository\CToolRepository; |
||||||
|
use Chamilo\Tests\AbstractApiTest; |
||||||
|
use Chamilo\Tests\ChamiloTestTrait; |
||||||
|
use Doctrine\Common\Collections\ArrayCollection; |
||||||
|
|
||||||
|
class CToolRepositoryTest extends AbstractApiTest |
||||||
|
{ |
||||||
|
use ChamiloTestTrait; |
||||||
|
|
||||||
|
public function testDelete(): void |
||||||
|
{ |
||||||
|
self::bootKernel(); |
||||||
|
|
||||||
|
$repo = self::getContainer()->get(CToolRepository::class); |
||||||
|
$this->assertSame(0, $repo->count([])); |
||||||
|
|
||||||
|
$course = $this->createCourse('new'); |
||||||
|
$defaultCount = $repo->count([]); |
||||||
|
|
||||||
|
/** @var CTool $courseTool */ |
||||||
|
$courseTool = $course->getTools()->first(); |
||||||
|
$repo->delete($courseTool); |
||||||
|
|
||||||
|
$this->assertSame($defaultCount - 1, $repo->count([])); |
||||||
|
} |
||||||
|
|
||||||
|
public function testGetTools(): void |
||||||
|
{ |
||||||
|
$token = $this->getUserToken([]); |
||||||
|
$response = $this->createClientWithCredentials($token)->request('GET', '/api/c_tools'); |
||||||
|
$this->assertResponseIsSuccessful(); |
||||||
|
|
||||||
|
// Asserts that the returned content type is JSON-LD (the default) |
||||||
|
$this->assertResponseHeaderSame('content-type', 'application/ld+json; charset=utf-8'); |
||||||
|
|
||||||
|
// Asserts that the returned JSON is a superset of this one |
||||||
|
$this->assertJsonContains([ |
||||||
|
'@context' => '/api/contexts/CTool', |
||||||
|
'@id' => '/api/c_tools', |
||||||
|
'@type' => 'hydra:Collection', |
||||||
|
'hydra:totalItems' => 0, |
||||||
|
]); |
||||||
|
|
||||||
|
$this->assertCount(0, $response->toArray()['hydra:member']); |
||||||
|
$this->assertMatchesResourceCollectionJsonSchema(CTool::class); |
||||||
|
|
||||||
|
$this->createCourse('new'); |
||||||
|
$response = $this->createClientWithCredentials($token)->request('GET', '/api/c_tools'); |
||||||
|
$this->assertResponseIsSuccessful(); |
||||||
|
|
||||||
|
$repo = self::getContainer()->get(CToolRepository::class); |
||||||
|
$defaultCount = $repo->count([]); |
||||||
|
$this->assertCount($defaultCount, $response->toArray()['hydra:member']); |
||||||
|
|
||||||
|
$test = $this->createUser('student'); |
||||||
|
$studentToken = $this->getUserTokenFromUser($test); |
||||||
|
$this->createClientWithCredentials($studentToken)->request('GET', '/api/c_tools'); |
||||||
|
$this->assertResponseStatusCodeSame(403); |
||||||
|
} |
||||||
|
} |
||||||
Loading…
Reference in new issue