tao-test/app/taoQtiItem/test/integration/controller/RestQtiItemTest.php

92 lines
3.3 KiB
PHP

<?php
/**
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; under version 2
* of the License (non-upgradable).
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
*/
declare(strict_types=1);
namespace oat\taoQtiItem\test\integration\controller;
use oat\tao\test\integration\RestTestRunner;
use oat\taoQtiItem\model\ItemModel;
use oat\generis\model\OntologyAwareTrait;
/**
* End point of Rest item API
*
* @author Absar Gilani, absar.gilani6@gmail.com
*/
class RestQtiItemTest extends RestTestRunner
{
use OntologyAwareTrait;
public function testImport(): void
{
\common_ext_ExtensionsManager::singleton()->getExtensionById('taoItems');
$url = $this->host . 'taoQtiItem/RestQtiItem/import';
$post_data = [
'content' => new \CURLFile(__DIR__ . '/../samples/package/QTI/package.zip', 'application/zip')
];
$return = $this->curl($url, CURLOPT_POST, 'data', [CURLOPT_POSTFIELDS => $post_data]);
$data = json_decode($return, true);
self::assertIsArray($data);
self::assertTrue(isset($data['success']));
self::assertTrue($data['success']);
self::assertTrue(isset($data['data']['items']));
$items = $data['data']['items'];
self::assertIsArray($items);
self::assertCount(1, $items);
$itemUri = reset($items);
self::assertIsString($itemUri);
$item = $this->getResource($itemUri);
self::assertTrue($item->exists());
$itemService = \taoItems_models_classes_ItemsService::singleton();
$model = $itemService->getItemModel($item);
self::assertNotNull($model);
self::assertEquals(ItemModel::MODEL_URI, $itemService->getItemModel($item)->getUri());
self::assertTrue($itemService->deleteResource($item));
self::assertFalse($item->exists());
}
public function testCreateQtiItem(): void
{
$url = $this->host . 'taoQtiItem/RestQtiItem/createQtiItem';
$return = $this->curl($url, CURLOPT_POST, 'data', [CURLOPT_POSTFIELDS => []]);
$data = json_decode($return, true);
$this->assertisarray($data);
$this->assertTrue(isset($data['success']));
$this->assertTrue($data['success']);
$this->assertTrue(isset($data['data']));
$itemUri = $data['data'];
$this->assertIsString($itemUri);
$item = $this->getResource($itemUri);
$this->assertTrue($item->exists());
$itemService = \taoItems_models_classes_ItemsService::singleton();
$model = $itemService->getItemModel($item);
$this->assertNotNull($model);
$this->assertEquals(ItemModel::MODEL_URI, $itemService->getItemModel($item)->getUri());
$this->assertTrue($itemService->deleteResource($item));
$this->assertFalse($item->exists());
}
}