add unit tests

This commit is contained in:
Dennis Eichhorn 2021-11-02 21:57:09 +01:00
parent ddc6f84d74
commit fc1d2762c6
6 changed files with 216 additions and 60 deletions

View File

@ -102,7 +102,7 @@ final class ApiController extends Controller
*
* @since 1.0.0
*/
public function apiProfileTempLoginCreate(Profile $profile, RequestAbstract $request, ResponseAbstract $response) : void
public function apiProfileTempLoginCreate(RequestAbstract $request, ResponseAbstract $response) : void
{
$account = AccountMapper::get($request->header->account);
$account->tempPassword = \password_hash(\random_bytes(64), \PASSWORD_BCRYPT);
@ -265,7 +265,7 @@ final class ApiController extends Controller
$element = new ContactElement();
$element->setType((int) ($request->getData('type') ?? 0));
$element->setSubtype((int) ($request->getData('subtype') ?? 0));
$element->setContent((string) ($request->getData('content') ?? ''));
$element->content = (string) ($request->getData('content') ?? '');
return $element;
}

View File

@ -17,6 +17,8 @@ namespace Modules\Profile\Models;
/**
* Contact element class.
*
* Information such as phone number, email, ...
*
* @package Modules\Profile\Models
* @license OMS License 1.0
* @link https://orange-management.org
@ -54,7 +56,7 @@ class ContactElement
* @var string
* @since 1.0.0
*/
private string $content = '';
public string $content = '';
/**
* Order.
@ -62,7 +64,7 @@ class ContactElement
* @var int
* @since 1.0.0
*/
private int $order = 0;
public int $order = 0;
/**
* Get id.
@ -102,32 +104,6 @@ class ContactElement
return $this->type;
}
/**
* Set order
*
* @param int $order Type
*
* @return void
*
* @since 1.0.0
*/
public function setOrder(int $order) : void
{
$this->order = $order;
}
/**
* Get order
*
* @return int
*
* @since 1.0.0
*/
public function getOrder() : int
{
return $this->order;
}
/**
* Set subtype
*
@ -153,30 +129,4 @@ class ContactElement
{
return $this->subtype;
}
/**
* Get content
*
* @return string
*
* @since 1.0.0
*/
public function getContent() : string
{
return $this->content;
}
/**
* Set content
*
* @param string $content Content
*
* @return void
*
* @since 1.0.0
*/
public function setContent(string $content) : void
{
$this->content = $content;
}
}

View File

@ -16,6 +16,7 @@ namespace Modules\Profile\tests\Controller;
use Model\CoreSettings;
use Modules\Admin\Models\AccountPermission;
use Modules\Profile\Models\ContactType;
use Modules\Profile\Models\Profile;
use Modules\Profile\Models\ProfileMapper;
use phpOMS\Account\Account;
@ -32,15 +33,21 @@ use phpOMS\Router\WebRouter;
use phpOMS\System\MimeType;
use phpOMS\Uri\HttpUri;
use phpOMS\Utils\TestUtils;
use phpOMS\Module\ModuleAbstract;
use phpOMS\Stdlib\Base\AddressType;
use phpOMS\Localization\ISO3166TwoEnum;
/**
* @internal
*/
final class ApiControllerTest extends \PHPUnit\Framework\TestCase
{
protected $app = null;
protected ApplicationAbstract $app;
protected $module = null;
/**
* @var \Modules\Profile\Controller\ApiController
*/
protected ModuleAbstract $module;
/**
* {@inheritdoc}
@ -117,7 +124,22 @@ final class ApiControllerTest extends \PHPUnit\Framework\TestCase
$profile->account->login = 'ProfileCreateDb';
$profile->account->setEmail('profile_create_db@email.com');
$this->module->apiProfileCreateDbEntry($profile, $request);
self::assertTrue($this->module->apiProfileCreateDbEntry($profile, $request));
}
/**
* @covers Modules\Profile\Controller\ApiController
* @group module
*/
public function testApiProfileTempLoginCreate() : void
{
$response = new HttpResponse();
$request = new HttpRequest(new HttpUri(''));
$request->header->account = 1;
$this->module->apiProfileTempLoginCreate($request, $response);
self::assertGreaterThan(31, \strlen($response->get('')['response']));
}
/**
@ -160,7 +182,77 @@ final class ApiControllerTest extends \PHPUnit\Framework\TestCase
$request = new HttpRequest(new HttpUri(''));
$this->module->apiSettingsAccountImageSet($request, $response);
self::assertEquals(RequestStatusCode::R_400, $response->header->status);
}
/**
* @covers Modules\Profile\Controller\ApiController
* @group module
*/
public function testApiContactElementCreate() : void
{
$response = new HttpResponse();
$request = new HttpRequest(new HttpUri(''));
$request->header->account = 1;
$request->setData('account', '1');
$request->setData('type', ContactType::PHONE);
$request->setData('content', '+0123-456-789');
$this->module->apiContactElementCreate($request, $response);
self::assertGreaterThan(0, $response->get('')['response']->getId());
}
/**
* @covers Modules\Profile\Controller\ApiController
* @group module
*/
public function testApiContactElementCreateInvalidData() : void
{
$response = new HttpResponse();
$request = new HttpRequest(new HttpUri(''));
$request->header->account = 1;
$request->setData('invalid', '1');
$this->module->apiContactElementCreate($request, $response);
self::assertEquals(RequestStatusCode::R_400, $response->header->status);
}
/**
* @covers Modules\Profile\Controller\ApiController
* @group module
*/
public function testApiAddressCreate() : void
{
$response = new HttpResponse();
$request = new HttpRequest(new HttpUri(''));
$request->header->account = 1;
$request->setData('account', '1');
$request->setData('type', AddressType::BUSINESS);
$request->setData('name', 'Test Addr.');
$request->setData('address', 'Address here');
$request->setData('postal', '123456');
$request->setData('City', 'TestCity');
$request->setData('Country', ISO3166TwoEnum::_USA);
$this->module->apiAddressCreate($request, $response);
self::assertGreaterThan(0, $response->get('')['response']->getId());
}
/**
* @covers Modules\Profile\Controller\ApiController
* @group module
*/
public function testApiAddressCreateInvalidData() : void
{
$response = new HttpResponse();
$request = new HttpRequest(new HttpUri(''));
$request->header->account = 1;
$request->setData('invalid', '1');
$this->module->apiAddressCreate($request, $response);
self::assertEquals(RequestStatusCode::R_400, $response->header->status);
}
}

View File

@ -0,0 +1,64 @@
<?php
/**
* Orange Management
*
* PHP Version 8.0
*
* @package tests
* @copyright 2013 Dennis Eichhorn
* @license OMS License 1.0
* @version 1.0.0
* @link https://orange-management.org
*/
declare(strict_types=1);
namespace Modules\Profile\tests\Models;
use Modules\Profile\Models\ContactElement;
/**
* @internal
*/
final class ContactElementTest extends \PHPUnit\Framework\TestCase
{
private ContactElement $contact;
/**
* {@inheritdoc}
*/
protected function setUp() : void
{
$this->contact = new ContactElement();
}
/**
* @covers Modules\Profile\Models\ContactElement
* @group module
*/
public function testDefault() : void
{
self::assertEquals(0, $this->contact->getId());
self::assertEquals('', $this->contact->content);
self::assertEquals(0, $this->contact->order);
}
/**
* @covers Modules\Profile\Models\ContactElement
* @group module
*/
public function testTypeInputOutput() : void
{
$this->contact->setType(3);
self::assertEquals(3, $this->contact->getType());
}
/**
* @covers Modules\Profile\Models\ContactElement
* @group module
*/
public function testSubtypeInputOutput() : void
{
$this->contact->setSubtype(3);
self::assertEquals(3, $this->contact->getSubtype());
}
}

View File

@ -0,0 +1,50 @@
<?php
/**
* Orange Management
*
* PHP Version 8.0
*
* @package tests
* @copyright 2013 Dennis Eichhorn
* @license OMS License 1.0
* @version 1.0.0
* @link https://orange-management.org
*/
declare(strict_types=1);
namespace Modules\Profile\tests\Models;
use Modules\Profile\Models\Contact;
/**
* @internal
*/
final class ContactTest extends \PHPUnit\Framework\TestCase
{
private Contact $contact;
/**
* {@inheritdoc}
*/
protected function setUp() : void
{
$this->contact = new Contact();
}
/**
* @covers Modules\Profile\Models\Contact
* @group module
*/
public function testDefault() : void
{
self::assertEquals(0, $this->contact->getId());
self::assertEquals('', $this->contact->name1);
self::assertEquals('', $this->contact->name2);
self::assertEquals('', $this->contact->name3);
self::assertEquals('', $this->contact->description);
self::assertEquals('', $this->contact->company);
self::assertEquals('', $this->contact->job);
self::assertEquals(null, $this->contact->birthday);
self::assertInstanceOf('\Modules\Media\Models\Media', $this->contact->image);
}
}

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" bootstrap="Bootstrap.php" colors="true" stopOnError="true" stopOnFailure="false" stopOnIncomplete="false" stopOnSkipped="false" beStrictAboutTestsThatDoNotTestAnything="false" xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd">
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" bootstrap="Bootstrap.php" colors="true" columns="120" stopOnError="true" stopOnFailure="false" stopOnIncomplete="false" stopOnSkipped="false" beStrictAboutTestsThatDoNotTestAnything="false" xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd">
<coverage includeUncoveredFiles="true" processUncoveredFiles="false">
<exclude>
<directory>*vendor*</directory>