From 7f8c88599d4bb64069ea0f30efe4d42651026f2d Mon Sep 17 00:00:00 2001 From: Dennis Eichhorn Date: Sat, 14 Mar 2020 14:16:25 +0100 Subject: [PATCH] add tests --- tests/Admin/AdminTest.php | 26 ++++++++ tests/ControllerTest.php | 100 +++++++++++++++++++++++++++++ tests/Models/ProfileMapperTest.php | 64 ++++++++++++++++++ tests/Models/ProfileTest.php | 40 ++++++++++++ 4 files changed, 230 insertions(+) create mode 100644 tests/Admin/AdminTest.php create mode 100644 tests/ControllerTest.php create mode 100644 tests/Models/ProfileMapperTest.php create mode 100644 tests/Models/ProfileTest.php diff --git a/tests/Admin/AdminTest.php b/tests/Admin/AdminTest.php new file mode 100644 index 0000000..1efb4ca --- /dev/null +++ b/tests/Admin/AdminTest.php @@ -0,0 +1,26 @@ +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'); + + $account = new Account(); + TestUtils::setMember($account, 'id', 1); + + $permission = new AccountPermission(); + $permission->setUnit(1); + $permission->setApp('backend'); + $permission->setPermission( + PermissionType::READ + | PermissionType::CREATE + | PermissionType::MODIFY + | PermissionType::DELETE + | PermissionType::PERMISSION + ); + + $account->addPermission($permission); + + $this->app->accountManager->add($account); + $this->app->router = new WebRouter(); + + $this->module = $this->app->moduleManager->get('Profile'); + + TestUtils::setMember($this->module, 'app', $this->app); + } + + /** + * @covers Modules\Profile\Controller\ApiController + * @group module + */ + public function testCreateProfile() : void + { + $response = new HttpResponse(); + $request = new HttpRequest(new HttpUri('')); + + $request->getHeader()->setAccount(1); + $request->setData('iaccount-idlist', '1'); + + $this->module->apiProfileCreate($request, $response); + + self::assertEquals('admin', $response->get('')['response'][0]->getAccount()->getName()); + self::assertGreaterThan(0, $response->get('')['response'][0]->getId()); + } +} diff --git a/tests/Models/ProfileMapperTest.php b/tests/Models/ProfileMapperTest.php new file mode 100644 index 0000000..4a577d8 --- /dev/null +++ b/tests/Models/ProfileMapperTest.php @@ -0,0 +1,64 @@ +setCreatedBy(new NullAccount(1)); + $media->setDescription('desc'); + $media->setPath('Web/Backend/img/default-user.jpg'); + $media->setSize(11); + $media->setExtension('png'); + $media->setName('Image'); + + if (($profile = ProfileMapper::getFor(1, 'account'))->getId() === 0) { + $profile = new Profile(); + + $profile->setAccount(AccountMapper::get(1)); + $profile->setImage($media); + $profile->setBirthday($date = new \DateTime('now')); + + $id = ProfileMapper::create($profile); + self::assertGreaterThan(0, $profile->getId()); + self::assertEquals($id, $profile->getId()); + } else { + $profile->setImage($media); + $profile->setBirthday($date = new \DateTime('now')); + + ProfileMapper::update($profile); + } + + $profileR = ProfileMapper::get($profile->getId()); + self::assertEquals($profile->getBirthday()->format('Y-m-d'), $profileR->getBirthday()->format('Y-m-d')); + self::assertEquals($profile->getImage()->getName(), $profileR->getImage()->getName()); + self::assertEquals($profile->getAccount()->getName1(), $profileR->getAccount()->getName1()); + } +} diff --git a/tests/Models/ProfileTest.php b/tests/Models/ProfileTest.php new file mode 100644 index 0000000..c91b970 --- /dev/null +++ b/tests/Models/ProfileTest.php @@ -0,0 +1,40 @@ +getId()); + self::assertInstanceOf('\Modules\Media\Models\Media', $profile->getImage()); + self::assertInstanceOf('\DateTime', $profile->getBirthday()); + } + + public function testSetGet() : void + { + $profile = new Profile(); + + $profile->setBirthday($date = new \DateTime('now')); + self::assertEquals($date, $profile->getBirthday()); + } +}