diff --git a/Controller/ApiController.php b/Controller/ApiController.php index 229b359..49ab4ea 100755 --- a/Controller/ApiController.php +++ b/Controller/ApiController.php @@ -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; } diff --git a/Models/ContactElement.php b/Models/ContactElement.php index db896c8..7b9fda0 100755 --- a/Models/ContactElement.php +++ b/Models/ContactElement.php @@ -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; - } } diff --git a/tests/Controller/ApiControllerTest.php b/tests/Controller/ApiControllerTest.php index 9ba3868..4859176 100755 --- a/tests/Controller/ApiControllerTest.php +++ b/tests/Controller/ApiControllerTest.php @@ -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); } } diff --git a/tests/Models/ContactElementTest.php b/tests/Models/ContactElementTest.php new file mode 100644 index 0000000..b2a3cd9 --- /dev/null +++ b/tests/Models/ContactElementTest.php @@ -0,0 +1,64 @@ +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()); + } +} diff --git a/tests/Models/ContactTest.php b/tests/Models/ContactTest.php new file mode 100644 index 0000000..54c1458 --- /dev/null +++ b/tests/Models/ContactTest.php @@ -0,0 +1,50 @@ +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); + } +} diff --git a/tests/phpunit_default.xml b/tests/phpunit_default.xml index 722365c..9208c99 100755 --- a/tests/phpunit_default.xml +++ b/tests/phpunit_default.xml @@ -1,5 +1,5 @@ - + *vendor*