mirror of
https://github.com/Karaka-Management/oms-ItemManagement.git
synced 2026-01-26 10:38:40 +00:00
test fixes
This commit is contained in:
parent
7572b3af04
commit
36e7864fd0
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -83,7 +83,7 @@ return ['ItemManagement' => [
|
|||
'Name3' => 'Name3.',
|
||||
'Name4' => 'Name4.',
|
||||
'Name5' => 'Name5.',
|
||||
'Net' => 'Reingewicht',
|
||||
'Net' => 'Netto',
|
||||
'NetWeight' => 'Reingewicht',
|
||||
'None' => 'Keiner',
|
||||
'Notes' => 'Anmerkungen',
|
||||
|
|
|
|||
|
|
@ -83,7 +83,7 @@ return ['ItemManagement' => [
|
|||
'Name3' => 'Name3',
|
||||
'Name4' => 'Name4',
|
||||
'Name5' => 'Name5',
|
||||
'Net' => 'Net Weight',
|
||||
'Net' => 'Net',
|
||||
'NetWeight' => 'Net Weight',
|
||||
'None' => 'None',
|
||||
'Notes' => 'Notes',
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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())
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
@ -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()
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
@ -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()
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
@ -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());
|
||||
}
|
||||
}
|
||||
|
|
@ -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());
|
||||
}
|
||||
}
|
||||
|
|
@ -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());
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user