test fixes

This commit is contained in:
Dennis Eichhorn 2023-04-17 19:44:57 +02:00
parent 7572b3af04
commit 36e7864fd0
12 changed files with 43 additions and 389 deletions

View File

@ -21,8 +21,11 @@ use Modules\Billing\Models\SalesBillMapper;
use Modules\ItemManagement\Models\ItemAttributeTypeMapper;
use Modules\ItemManagement\Models\ItemAttributeValueMapper;
use Modules\ItemManagement\Models\ItemMapper;
use Modules\Media\Models\MediaMapper;
use Modules\Media\Models\MediaTypeMapper;
use phpOMS\Asset\AssetType;
use phpOMS\Contract\RenderableInterface;
use phpOMS\DataStorage\Database\Query\Builder;
use phpOMS\DataStorage\Database\Query\OrderType;
use phpOMS\Localization\ISO3166CharEnum;
use phpOMS\Localization\ISO3166NameEnum;
@ -349,6 +352,33 @@ final class BackendController extends Controller
$view->addData('item', $item);
// Get item profile image
// It might not be part of the 5 newest item files from above
// @todo: It would be nice to have something like this as a default method in the model e.g.
// ItemManagement::getRelations()->with('types')->where(...);
// This should return the relations and NOT the model itself
$query = new Builder($this->app->dbPool->get());
$results = $query->selectAs(ItemMapper::HAS_MANY['files']['external'], 'file')
->from(ItemMapper::TABLE)
->leftJoin(ItemMapper::HAS_MANY['files']['table'])
->on(ItemMapper::HAS_MANY['files']['table'] . '.' . ItemMapper::HAS_MANY['files']['self'], '=', ItemMapper::TABLE . '.' . ItemMapper::PRIMARYFIELD)
->leftJoin(MediaMapper::TABLE)
->on(ItemMapper::HAS_MANY['files']['table'] . '.' . ItemMapper::HAS_MANY['files']['external'], '=', MediaMapper::TABLE . '.' . MediaMapper::PRIMARYFIELD)
->leftJoin(MediaMapper::HAS_MANY['types']['table'])
->on(MediaMapper::TABLE . '.' . MediaMapper::PRIMARYFIELD, '=', MediaMapper::HAS_MANY['types']['table'] . '.' . MediaMapper::HAS_MANY['types']['self'])
->leftJoin(MediaTypeMapper::TABLE)
->on(MediaMapper::HAS_MANY['types']['table'] . '.' . MediaMapper::HAS_MANY['types']['external'], '=', MediaTypeMapper::TABLE . '.' . MediaTypeMapper::PRIMARYFIELD)
->where(ItemMapper::HAS_MANY['files']['self'], '=', $item->getId())
->where(MediaTypeMapper::TABLE . '.' . MediaTypeMapper::getColumnByMember('name'), '=', 'item_profile_image');
$itemImage = MediaMapper::get()
->with('types')
->where('id', $results)
->limit(1)
->execute();
$view->addData('itemImage', $itemImage);
/** @var \Model\Setting $settings */
$settings = $this->app->appSettings->get(null, [
SettingsEnum::DEFAULT_LOCALIZATION,

View File

@ -83,7 +83,7 @@ return ['ItemManagement' => [
'Name3' => 'Name3.',
'Name4' => 'Name4.',
'Name5' => 'Name5.',
'Net' => 'Reingewicht',
'Net' => 'Netto',
'NetWeight' => 'Reingewicht',
'None' => 'Keiner',
'Notes' => 'Anmerkungen',

View File

@ -83,7 +83,7 @@ return ['ItemManagement' => [
'Name3' => 'Name3',
'Name4' => 'Name4',
'Name5' => 'Name5',
'Net' => 'Net Weight',
'Net' => 'Net',
'NetWeight' => 'Net Weight',
'None' => 'None',
'Notes' => 'Notes',

View File

@ -26,6 +26,7 @@ $Attribute = $item->getAttributes();
$notes = $item->getNotes();
$files = $item->getFiles();
$itemImage = $this->getData('itemImage') ?? new NullMedia();
$newestInvoices = $this->getData('newestInvoices') ?? [];
$allInvoices = $this->getData('allInvoices') ?? [];
@ -86,13 +87,13 @@ echo $this->getData('nav')->render();
</form>
</section>
<?php $image = $item->getFileByTypeName('item_profile_image'); ?>
<?php $image = $itemImage; ?>
<section class="portlet">
<div class="portlet-body">
<img alt="<?= $this->printHtml($image->name); ?>" width="100%" loading="lazy" class="item-image"
src="<?= $image instanceof NullMedia ?
'Web/Backend/img/logo_grey.png' :
UriFactory::build($image->getPath()); ?>">
src="<?= $image instanceof NullMedia
? 'Web/Backend/img/logo_grey.png'
: UriFactory::build($image->getPath()); ?>">
</div>
</section>

View File

@ -74,7 +74,7 @@ trait ApiControllerAttributeTrait
$request->setData('title', 'EN:1');
$request->setData('language', ISO639x1Enum::_EN);
$this->module->apiAttributeTypeCreate($request, $response);
$this->module->apiItemAttributeTypeCreate($request, $response);
self::assertGreaterThan(0, $response->get('')['response']->getId());
}
@ -92,7 +92,7 @@ trait ApiControllerAttributeTrait
$request->setData('type', '1');
$request->setData('language', ISO639x1Enum::_DE);
$this->module->apiAttributeTypeL11nCreate($request, $response);
$this->module->apiItemAttributeTypeL11nCreate($request, $response);
self::assertGreaterThan(0, $response->get('')['response']->getId());
}
@ -219,7 +219,7 @@ trait ApiControllerAttributeTrait
$request->header->account = 1;
$request->setData('invalid', '1');
$this->module->apiAttributeTypeCreate($request, $response);
$this->module->apiItemAttributeTypeCreate($request, $response);
self::assertEquals(RequestStatusCode::R_400, $response->header->status);
}
@ -235,7 +235,7 @@ trait ApiControllerAttributeTrait
$request->header->account = 1;
$request->setData('invalid', '1');
$this->module->apiAttributeTypeL11nCreate($request, $response);
$this->module->apiItemAttributeTypeL11nCreate($request, $response);
self::assertEquals(RequestStatusCode::R_400, $response->header->status);
}

View File

@ -25,6 +25,7 @@ use phpOMS\Application\ApplicationAbstract;
use phpOMS\DataStorage\Session\HttpSession;
use phpOMS\Dispatcher\Dispatcher;
use phpOMS\Event\EventManager;
use phpOMS\Localization\L11nManager;
use phpOMS\Module\ModuleAbstract;
use phpOMS\Module\ModuleManager;
use phpOMS\Router\WebRouter;
@ -63,6 +64,7 @@ final class ApiControllerTest extends \PHPUnit\Framework\TestCase
$this->app->eventManager = new EventManager($this->app->dispatcher);
$this->app->eventManager->importFromFile(__DIR__ . '/../../../../Web/Api/Hooks.php');
$this->app->sessionManager = new HttpSession(36000);
$this->app->l11nManager = new L11nManager();
$account = new Account();
TestUtils::setMember($account, 'id', 1);

View File

@ -1,61 +0,0 @@
<?php
/**
* Karaka
*
* PHP Version 8.1
*
* @package tests
* @copyright Dennis Eichhorn
* @license OMS License 2.0
* @version 1.0.0
* @link https://jingga.app
*/
declare(strict_types=1);
namespace Modules\ItemManagement\tests\Models;
use Modules\Attribute\Models\Attribute;
/**
* @internal
*/
final class AttributeTest extends \PHPUnit\Framework\TestCase
{
private Attribute $attr;
/**
* {@inheritdoc}
*/
protected function setUp() : void
{
$this->attr = new Attribute();
}
/**
* @covers Modules\Attribute\Models\Attribute
* @group module
*/
public function testDefault() : void
{
self::assertEquals(0, $this->attr->getId());
self::assertInstanceOf('Modules\Attribute\Models\AttributeType', $this->attr->type);
self::assertInstanceOf('Modules\Attribute\Models\AttributeValue', $this->attr->value);
}
/**
* @covers Modules\Attribute\Models\Attribute
* @group module
*/
public function testSerialize() : void
{
self::assertEquals(
[
'id',
'item',
'type',
'value',
],
\array_keys($this->attr->jsonSerialize())
);
}
}

View File

@ -1,84 +0,0 @@
<?php
/**
* Karaka
*
* PHP Version 8.1
*
* @package tests
* @copyright Dennis Eichhorn
* @license OMS License 2.0
* @version 1.0.0
* @link https://jingga.app
*/
declare(strict_types=1);
namespace Modules\ItemManagement\tests\Models;
use Modules\Attribute\Models\AttributeType;
use phpOMS\Localization\BaseStringL11n;
/**
* @internal
*/
final class AttributeTypeTest extends \PHPUnit\Framework\TestCase
{
private AttributeType $attr;
/**
* {@inheritdoc}
*/
protected function setUp() : void
{
$this->attr = new AttributeType();
}
/**
* @covers Modules\Attribute\Models\AttributeType
* @group module
*/
public function testDefault() : void
{
self::assertEquals(0, $this->attr->getId());
self::assertEquals('', $this->attr->name);
self::assertEquals('', $this->attr->validationPattern);
self::assertFalse($this->attr->custom);
self::assertFalse($this->attr->isRequired);
self::assertEquals('', $this->attr->getL11n());
}
/**
* @covers Modules\Attribute\Models\AttributeType
* @group module
*/
public function testL11nInputOutput() : void
{
$this->attr->setL11n('Test');
self::assertEquals('Test', $this->attr->getL11n());
$this->attr->setL11n(new BaseStringL11n('NewTest'));
self::assertEquals('NewTest', $this->attr->getL11n());
}
/**
* @covers Modules\Attribute\Models\AttributeType
* @group module
*/
public function testSerialize() : void
{
$this->attr->name = 'Test';
$this->attr->validationPattern = 'Pattern';
$this->attr->custom = true;
$this->attr->isRequired = true;
self::assertEquals(
[
'id' => 0,
'name' => 'Test',
'validationPattern' => 'Pattern',
'custom' => true,
'isRequired' => true,
],
$this->attr->jsonSerialize()
);
}
}

View File

@ -1,108 +0,0 @@
<?php
/**
* Karaka
*
* PHP Version 8.1
*
* @package tests
* @copyright Dennis Eichhorn
* @license OMS License 2.0
* @version 1.0.0
* @link https://jingga.app
*/
declare(strict_types=1);
namespace Modules\ItemManagement\tests\Models;
use Modules\ItemManagement\Models\AttributeValueType;
use Modules\Attribute\Models\AttributeValue;
/**
* @internal
*/
final class AttributeValueTest extends \PHPUnit\Framework\TestCase
{
private AttributeValue $value;
/**
* {@inheritdoc}
*/
protected function setUp() : void
{
$this->value = new AttributeValue();
}
/**
* @covers Modules\Attribute\Models\AttributeValue
* @group module
*/
public function testDefault() : void
{
self::assertEquals(0, $this->value->getId());
self::assertNull($this->value->getValue());
self::assertFalse($this->value->isDefault);
}
/**
* @covers Modules\Attribute\Models\AttributeValue
* @group module
*/
public function testValueIntInputOutput() : void
{
$this->value->setValue(1, AttributeValueType::_INT);
self::assertEquals(1, $this->value->getValue());
}
/**
* @covers Modules\Attribute\Models\AttributeValue
* @group module
*/
public function testValueFloatInputOutput() : void
{
$this->value->setValue(1.1, AttributeValueType::_FLOAT);
self::assertEquals(1.1, $this->value->getValue());
}
/**
* @covers Modules\Attribute\Models\AttributeValue
* @group module
*/
public function testValueStringInputOutput() : void
{
$this->value->setValue('test', AttributeValueType::_STRING);
self::assertEquals('test', $this->value->getValue());
}
/**
* @covers Modules\Attribute\Models\AttributeValue
* @group module
*/
public function testValueDateInputOutput() : void
{
$dat = new \DateTime('now');
$this->value->setValue('now', AttributeValueType::_DATETIME);
self::assertEquals($dat->format('Y-m-d'), $this->value->getValue()->format('Y-m-d'));
}
/**
* @covers Modules\Attribute\Models\AttributeValue
* @group module
*/
public function testSerialize() : void
{
$this->value->setValue('test', AttributeValueType::_STRING);
$this->value->isDefault = true;
self::assertEquals(
[
'id' => 0,
'valueInt' => null,
'valueStr' => 'test',
'valueDec' => null,
'valueDat' => null,
'isDefault' => true,
],
$this->value->jsonSerialize()
);
}
}

View File

@ -1,42 +0,0 @@
<?php
/**
* Karaka
*
* PHP Version 8.1
*
* @package tests
* @copyright Dennis Eichhorn
* @license OMS License 2.0
* @version 1.0.0
* @link https://jingga.app
*/
declare(strict_types=1);
namespace Modules\ItemManagement\tests\Models;
use Modules\ItemManagement\Models\NullAttribute;
/**
* @internal
*/
final class NullAttributeTest extends \PHPUnit\Framework\TestCase
{
/**
* @covers Modules\ItemManagement\Models\NullAttribute
* @group framework
*/
public function testNull() : void
{
self::assertInstanceOf('\Modules\Attribute\Models\Attribute', new NullAttribute());
}
/**
* @covers Modules\ItemManagement\Models\NullAttribute
* @group framework
*/
public function testId() : void
{
$null = new NullAttribute(2);
self::assertEquals(2, $null->getId());
}
}

View File

@ -1,42 +0,0 @@
<?php
/**
* Karaka
*
* PHP Version 8.1
*
* @package tests
* @copyright Dennis Eichhorn
* @license OMS License 2.0
* @version 1.0.0
* @link https://jingga.app
*/
declare(strict_types=1);
namespace Modules\ItemManagement\tests\Models;
use Modules\ItemManagement\Models\NullAttributeType;
/**
* @internal
*/
final class NullAttributeTypeTest extends \PHPUnit\Framework\TestCase
{
/**
* @covers Modules\ItemManagement\Models\NullAttributeType
* @group framework
*/
public function testNull() : void
{
self::assertInstanceOf('\Modules\Attribute\Models\AttributeType', new NullAttributeType());
}
/**
* @covers Modules\ItemManagement\Models\NullAttributeType
* @group framework
*/
public function testId() : void
{
$null = new NullAttributeType(2);
self::assertEquals(2, $null->getId());
}
}

View File

@ -1,42 +0,0 @@
<?php
/**
* Karaka
*
* PHP Version 8.1
*
* @package tests
* @copyright Dennis Eichhorn
* @license OMS License 2.0
* @version 1.0.0
* @link https://jingga.app
*/
declare(strict_types=1);
namespace Modules\ItemManagement\tests\Models;
use Modules\ItemManagement\Models\NullAttributeValue;
/**
* @internal
*/
final class NullAttributeValueTest extends \PHPUnit\Framework\TestCase
{
/**
* @covers Modules\ItemManagement\Models\NullAttributeValue
* @group framework
*/
public function testNull() : void
{
self::assertInstanceOf('\Modules\Attribute\Models\AttributeValue', new NullAttributeValue());
}
/**
* @covers Modules\ItemManagement\Models\NullAttributeValue
* @group framework
*/
public function testId() : void
{
$null = new NullAttributeValue(2);
self::assertEquals(2, $null->getId());
}
}