mirror of
https://github.com/Karaka-Management/oms-Media.git
synced 2026-02-13 07:48:41 +00:00
add tests
This commit is contained in:
parent
f069bf670f
commit
ad51c1a134
26
tests/Admin/AdminTest.php
Normal file
26
tests/Admin/AdminTest.php
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
<?php
|
||||
/**
|
||||
* Orange Management
|
||||
*
|
||||
* PHP Version 7.4
|
||||
*
|
||||
* @package tests
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 1.0
|
||||
* @version 1.0.0
|
||||
* @link https://orange-management.org
|
||||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\tests\Media\Admin;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class AdminTest extends \PHPUnit\Framework\TestCase
|
||||
{
|
||||
protected const MODULE_NAME = 'Media';
|
||||
protected const URI_LOAD = 'http://127.0.0.1/en/backend/media';
|
||||
|
||||
use \Modules\tests\ModuleTestTrait;
|
||||
}
|
||||
94
tests/ControllerTest.php
Normal file
94
tests/ControllerTest.php
Normal file
|
|
@ -0,0 +1,94 @@
|
|||
<?php
|
||||
/**
|
||||
* Orange Management
|
||||
*
|
||||
* PHP Version 7.4
|
||||
*
|
||||
* @package tests
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 1.0
|
||||
* @version 1.0.0
|
||||
* @link https://orange-management.org
|
||||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\tests\Media;
|
||||
|
||||
use Model\CoreSettings;
|
||||
use Modules\Media\Models\UploadStatus;
|
||||
use phpOMS\Account\AccountManager;
|
||||
use phpOMS\Application\ApplicationAbstract;
|
||||
use phpOMS\Dispatcher\Dispatcher;
|
||||
use phpOMS\Event\EventManager;
|
||||
use phpOMS\Module\ModuleManager;
|
||||
use phpOMS\Router\WebRouter;
|
||||
|
||||
require_once __DIR__ . '/../Autoloader.php';
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class ControllerTest extends \PHPUnit\Framework\TestCase
|
||||
{
|
||||
protected $app = null;
|
||||
protected $module = null;
|
||||
|
||||
protected function setUp() : void
|
||||
{
|
||||
$this->app = new class() extends ApplicationAbstract
|
||||
{
|
||||
protected string $appName = 'Api';
|
||||
};
|
||||
|
||||
$this->app->dbPool = $GLOBALS['dbpool'];
|
||||
$this->app->orgId = 1;
|
||||
$this->app->appName = 'Backend';
|
||||
$this->app->accountManager = new AccountManager($GLOBALS['session']);
|
||||
$this->app->appSettings = new CoreSettings($this->app->dbPool->get());
|
||||
$this->app->moduleManager = new ModuleManager($this->app, __DIR__ . '/../../../Modules');
|
||||
$this->app->dispatcher = new Dispatcher($this->app);
|
||||
$this->app->eventManager = new EventManager($this->app->dispatcher);
|
||||
$this->app->eventManager->importFromFile(__DIR__ . '/../../../Web/Api/Hooks.php');
|
||||
|
||||
$this->app->router = new WebRouter();
|
||||
|
||||
$this->module = $this->app->moduleManager->get('Media');
|
||||
}
|
||||
|
||||
/**
|
||||
* @covers Modules\Media\Controller\ApiController
|
||||
* @group module
|
||||
*/
|
||||
public function testCreateDbEntries() : void
|
||||
{
|
||||
$status = [
|
||||
[
|
||||
'status' => UploadStatus::OK,
|
||||
'extension' => 'png',
|
||||
'filename' => 'logo.png',
|
||||
'name' => 'logo.png',
|
||||
'path' => 'Modules/tests/Media/Files/',
|
||||
'size' => 90210,
|
||||
],
|
||||
[
|
||||
'status' => UploadStatus::FAILED_HASHING,
|
||||
'extension' => 'png',
|
||||
'filename' => 'logo.png',
|
||||
'name' => 'logo.png',
|
||||
'path' => 'Modules/tests/Media/Files/',
|
||||
'size' => 90210,
|
||||
],
|
||||
[
|
||||
'status' => UploadStatus::OK,
|
||||
'extension' => 'png',
|
||||
'filename' => 'logo2.png',
|
||||
'name' => 'logo2.png',
|
||||
'path' => 'Modules/tests/Media/Files/',
|
||||
'size' => 90210,
|
||||
],
|
||||
];
|
||||
|
||||
$ids = $this->module->createDbEntries($status, 1);
|
||||
self::assertCount(2, $ids);
|
||||
}
|
||||
}
|
||||
BIN
tests/Files/logo.png
Normal file
BIN
tests/Files/logo.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 88 KiB |
BIN
tests/Files/logo2.png
Normal file
BIN
tests/Files/logo2.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 88 KiB |
95
tests/Models/CollectionTest.php
Normal file
95
tests/Models/CollectionTest.php
Normal file
|
|
@ -0,0 +1,95 @@
|
|||
<?php
|
||||
/**
|
||||
* Orange Management
|
||||
*
|
||||
* PHP Version 7.4
|
||||
*
|
||||
* @package tests
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 1.0
|
||||
* @version 1.0.0
|
||||
* @link https://orange-management.org
|
||||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\tests\Media\Models;
|
||||
|
||||
use Modules\Admin\Models\NullAccount;
|
||||
use Modules\Media\Models\Collection;
|
||||
use Modules\Media\Models\NullMedia;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class CollectionTest extends \PHPUnit\Framework\TestCase
|
||||
{
|
||||
protected Collection $media;
|
||||
|
||||
protected function setUp() : void
|
||||
{
|
||||
$this->media = new Collection();
|
||||
}
|
||||
|
||||
public function testDefault() : void
|
||||
{
|
||||
self::assertEquals(0, $this->media->getId());
|
||||
self::assertEquals(0, $this->media->getCreatedBy()->getId());
|
||||
self::assertEquals((new \DateTime('now'))->format('Y-m-d'), $this->media->getCreatedAt()->format('Y-m-d'));
|
||||
self::assertEquals('collection', $this->media->getExtension());
|
||||
self::assertEquals('', $this->media->getPath());
|
||||
self::assertEquals('', $this->media->getName());
|
||||
self::assertEquals('', $this->media->getDescription());
|
||||
self::assertEquals(0, $this->media->getSize());
|
||||
self::assertFalse($this->media->isVersioned());
|
||||
self::assertEquals([], $this->media->getSources());
|
||||
}
|
||||
|
||||
public function testCreatedByInputOutput() : void
|
||||
{
|
||||
$this->media->setCreatedBy(new NullAccount(1));
|
||||
self::assertEquals(1, $this->media->getCreatedBy()->getId());
|
||||
}
|
||||
|
||||
public function testExtensionInputOutput() : void
|
||||
{
|
||||
$this->media->setExtension('pdf');
|
||||
self::assertEquals('collection', $this->media->getExtension());
|
||||
}
|
||||
|
||||
public function testPathInputOutput() : void
|
||||
{
|
||||
$this->media->setPath('/home/root');
|
||||
self::assertEquals('/home/root', $this->media->getPath());
|
||||
}
|
||||
|
||||
public function testDescriptionInputOutput() : void
|
||||
{
|
||||
$this->media->setDescription('This is a description');
|
||||
self::assertEquals('This is a description', $this->media->getDescription());
|
||||
}
|
||||
|
||||
public function testSizeInputOutput() : void
|
||||
{
|
||||
$this->media->setSize(11);
|
||||
self::assertEquals(11, $this->media->getSize());
|
||||
}
|
||||
|
||||
public function testVersionedInputOutput() : void
|
||||
{
|
||||
$this->media->setVersioned(true);
|
||||
self::assertFalse($this->media->isVersioned());
|
||||
}
|
||||
|
||||
public function testSourceInputOutput() : void
|
||||
{
|
||||
$this->media->setSources([new NullMedia(1), new NullMedia(2), new NullMedia(3)]);
|
||||
self::assertEquals([new NullMedia(1), new NullMedia(2), new NullMedia(3)], $this->media->getSources());
|
||||
}
|
||||
|
||||
public function testSourceAddInputOutput() : void
|
||||
{
|
||||
$this->media->setSources([new NullMedia(1), new NullMedia(2), new NullMedia(3)]);
|
||||
$this->media->addSource(new NullMedia(4));
|
||||
self::assertEquals([new NullMedia(1), new NullMedia(2), new NullMedia(3), new NullMedia(4)], $this->media->getSources());
|
||||
}
|
||||
}
|
||||
104
tests/Models/MediaMapperTest.php
Normal file
104
tests/Models/MediaMapperTest.php
Normal file
|
|
@ -0,0 +1,104 @@
|
|||
<?php
|
||||
/**
|
||||
* Orange Management
|
||||
*
|
||||
* PHP Version 7.4
|
||||
*
|
||||
* @package tests
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 1.0
|
||||
* @version 1.0.0
|
||||
* @link https://orange-management.org
|
||||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\tests\Media\Models;
|
||||
|
||||
use Modules\Admin\Models\NullAccount;
|
||||
use Modules\Media\Models\Media;
|
||||
use Modules\Media\Models\MediaMapper;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class MediaMapperTest extends \PHPUnit\Framework\TestCase
|
||||
{
|
||||
public function testCRUD() : void
|
||||
{
|
||||
$media = new Media();
|
||||
$media->setCreatedBy(new NullAccount(1));
|
||||
$media->setDescription('desc');
|
||||
$media->setDescriptionRaw('descRaw');
|
||||
$media->setPath('some/path');
|
||||
$media->setSize(11);
|
||||
$media->setExtension('png');
|
||||
$media->setName('Image');
|
||||
$id = MediaMapper::create($media);
|
||||
|
||||
self::assertGreaterThan(0, $media->getId());
|
||||
self::assertEquals($id, $media->getId());
|
||||
|
||||
$mediaR = MediaMapper::get($media->getId());
|
||||
self::assertEquals($media->getCreatedAt()->format('Y-m-d'), $mediaR->getCreatedAt()->format('Y-m-d'));
|
||||
self::assertEquals($media->getCreatedBy()->getId(), $mediaR->getCreatedBy()->getId());
|
||||
self::assertEquals($media->getDescription(), $mediaR->getDescription());
|
||||
self::assertEquals($media->getDescriptionRaw(), $mediaR->getDescriptionRaw());
|
||||
self::assertEquals($media->getPath(), $mediaR->getPath());
|
||||
self::assertEquals($media->isAbsolute(), $mediaR->isAbsolute());
|
||||
self::assertEquals($media->getSize(), $mediaR->getSize());
|
||||
self::assertEquals($media->getExtension(), $mediaR->getExtension());
|
||||
self::assertEquals($media->getName(), $mediaR->getName());
|
||||
}
|
||||
|
||||
public function testAbsolute() : void
|
||||
{
|
||||
$media = new Media();
|
||||
$media->setCreatedBy(new NullAccount(1));
|
||||
$media->setDescription('desc');
|
||||
$media->setPath('https://avatars0.githubusercontent.com/u/16034994');
|
||||
$media->setAbsolute(true);
|
||||
$media->setSize(11);
|
||||
$media->setExtension('png');
|
||||
$media->setName('Absolute path');
|
||||
$id = MediaMapper::create($media);
|
||||
|
||||
self::assertGreaterThan(0, $media->getId());
|
||||
self::assertEquals($id, $media->getId());
|
||||
|
||||
$mediaR = MediaMapper::get($media->getId());
|
||||
self::assertEquals($media->getCreatedAt()->format('Y-m-d'), $mediaR->getCreatedAt()->format('Y-m-d'));
|
||||
self::assertEquals($media->getCreatedBy()->getId(), $mediaR->getCreatedBy()->getId());
|
||||
self::assertEquals($media->getDescription(), $mediaR->getDescription());
|
||||
self::assertEquals($media->getPath(), $mediaR->getPath());
|
||||
self::assertEquals($media->isAbsolute(), $mediaR->isAbsolute());
|
||||
self::assertEquals($media->getSize(), $mediaR->getSize());
|
||||
self::assertEquals($media->getExtension(), $mediaR->getExtension());
|
||||
self::assertEquals($media->getName(), $mediaR->getName());
|
||||
}
|
||||
|
||||
public function testDirectoryMapping() : void
|
||||
{
|
||||
$media = new Media();
|
||||
$media->setCreatedBy(new NullAccount(1));
|
||||
$media->setDescription('desc');
|
||||
$media->setPath(\realpath(__DIR__ . '/../../../../../'));
|
||||
$media->setAbsolute(true);
|
||||
$media->setSize(11);
|
||||
$media->setExtension('collection');
|
||||
$media->setName('Directory');
|
||||
$id = MediaMapper::create($media);
|
||||
|
||||
self::assertGreaterThan(0, $media->getId());
|
||||
self::assertEquals($id, $media->getId());
|
||||
|
||||
$mediaR = MediaMapper::get($media->getId());
|
||||
self::assertEquals($media->getCreatedAt()->format('Y-m-d'), $mediaR->getCreatedAt()->format('Y-m-d'));
|
||||
self::assertEquals($media->getCreatedBy()->getId(), $mediaR->getCreatedBy()->getId());
|
||||
self::assertEquals($media->getDescription(), $mediaR->getDescription());
|
||||
self::assertEquals($media->getPath(), $mediaR->getPath());
|
||||
self::assertEquals($media->isAbsolute(), $mediaR->isAbsolute());
|
||||
self::assertEquals($media->getSize(), $mediaR->getSize());
|
||||
self::assertEquals($media->getExtension(), $mediaR->getExtension());
|
||||
self::assertEquals($media->getName(), $mediaR->getName());
|
||||
}
|
||||
}
|
||||
113
tests/Models/MediaTest.php
Normal file
113
tests/Models/MediaTest.php
Normal file
|
|
@ -0,0 +1,113 @@
|
|||
<?php
|
||||
/**
|
||||
* Orange Management
|
||||
*
|
||||
* PHP Version 7.4
|
||||
*
|
||||
* @package tests
|
||||
* @copyright Dennis Eichhorn
|
||||
* @license OMS License 1.0
|
||||
* @version 1.0.0
|
||||
* @link https://orange-management.org
|
||||
*/
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Modules\tests\Media\Models;
|
||||
|
||||
use Modules\Admin\Models\NullAccount;
|
||||
use Modules\Media\Models\Media;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
class MediaTest extends \PHPUnit\Framework\TestCase
|
||||
{
|
||||
protected Media $media;
|
||||
|
||||
protected function setUp() : void
|
||||
{
|
||||
$this->media = new Media();
|
||||
}
|
||||
|
||||
public function testDefault() : void
|
||||
{
|
||||
self::assertEquals(0, $this->media->getId());
|
||||
self::assertEquals(0, $this->media->getCreatedBy()->getId());
|
||||
self::assertEquals((new \DateTime('now'))->format('Y-m-d'), $this->media->getCreatedAt()->format('Y-m-d'));
|
||||
self::assertEquals('', $this->media->getExtension());
|
||||
self::assertEquals('', $this->media->getPath());
|
||||
self::assertFalse($this->media->isAbsolute());
|
||||
self::assertEquals('', $this->media->getName());
|
||||
self::assertEquals('', $this->media->getDescription());
|
||||
self::assertEquals('', $this->media->getDescriptionRaw());
|
||||
self::assertEquals('/', $this->media->getVirtualPath());
|
||||
self::assertEquals(0, $this->media->getSize());
|
||||
self::assertFalse($this->media->isVersioned());
|
||||
}
|
||||
|
||||
public function testCreatedByInputOutput() : void
|
||||
{
|
||||
$this->media->setCreatedBy(new NullAccount(1));
|
||||
self::assertEquals(1, $this->media->getCreatedBy()->getId());
|
||||
}
|
||||
|
||||
public function testExtensionInputOutput() : void
|
||||
{
|
||||
$this->media->setExtension('pdf');
|
||||
self::assertEquals('pdf', $this->media->getExtension());
|
||||
}
|
||||
|
||||
public function testPathInputOutput() : void
|
||||
{
|
||||
$this->media->setPath('/home/root');
|
||||
self::assertEquals('/home/root', $this->media->getPath());
|
||||
}
|
||||
|
||||
public function testAbsolutePathInputOutput() : void
|
||||
{
|
||||
$this->media->setAbsolute(true);
|
||||
self::assertTrue($this->media->isAbsolute());
|
||||
}
|
||||
|
||||
public function testNameInputOutput() : void
|
||||
{
|
||||
$this->media->setName('Report');
|
||||
self::assertEquals('Report', $this->media->getName());
|
||||
}
|
||||
|
||||
public function testDescriptionInputOutput() : void
|
||||
{
|
||||
$this->media->setDescription('This is a description');
|
||||
self::assertEquals('This is a description', $this->media->getDescription());
|
||||
}
|
||||
|
||||
public function testDescriptionRawInputOutput() : void
|
||||
{
|
||||
$this->media->setDescriptionRaw('This is a description raw');
|
||||
self::assertEquals('This is a description raw', $this->media->getDescriptionRaw());
|
||||
}
|
||||
|
||||
public function testSizeInputOutput() : void
|
||||
{
|
||||
$this->media->setSize(11);
|
||||
self::assertEquals(11, $this->media->getSize());
|
||||
}
|
||||
|
||||
public function testVersionedInputOutput() : void
|
||||
{
|
||||
$this->media->setVersioned(true);
|
||||
self::assertTrue($this->media->isVersioned());
|
||||
}
|
||||
|
||||
public function testVirtualPathInputOutput() : void
|
||||
{
|
||||
$this->media->setVirtualPath('/test/path');
|
||||
self::assertEquals('/test/path', $this->media->getVirtualPath());
|
||||
}
|
||||
|
||||
public function testHiddenInputOutput() : void
|
||||
{
|
||||
$this->media->setHidden(true);
|
||||
self::assertTrue($this->media->isHidden());
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user