From e3c725f16d37b7ff2a1025566e2106fe7e1441df Mon Sep 17 00:00:00 2001 From: Dennis Eichhorn Date: Sat, 14 Mar 2020 14:14:22 +0100 Subject: [PATCH] add tests --- tests/Admin/AdminTest.php | 26 +++++++ tests/ControllerTest.php | 102 +++++++++++++++++++++++++++ tests/Models/EditorDocMapperTest.php | 73 +++++++++++++++++++ tests/Models/EditorDocTest.php | 68 ++++++++++++++++++ 4 files changed, 269 insertions(+) create mode 100644 tests/Admin/AdminTest.php create mode 100644 tests/ControllerTest.php create mode 100644 tests/Models/EditorDocMapperTest.php create mode 100644 tests/Models/EditorDocTest.php diff --git a/tests/Admin/AdminTest.php b/tests/Admin/AdminTest.php new file mode 100644 index 0000000..4a8ebc7 --- /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('Editor'); + + TestUtils::setMember($this->module, 'app', $this->app); + } + + /** + * @covers Modules\Editor\Controller\ApiController + * @group module + */ + public function testCreateEditor() : void + { + $response = new HttpResponse(); + $request = new HttpRequest(new HttpUri('')); + + $request->getHeader()->setAccount(1); + $request->setData('title', 'Controller Test Title'); + $request->setData('plain', 'Controller Test Description'); + + $this->module->apiEditorCreate($request, $response); + + self::assertEquals('Controller Test Title', $response->get('')['response']->getTitle()); + self::assertGreaterThan(0, $response->get('')['response']->getId()); + } +} diff --git a/tests/Models/EditorDocMapperTest.php b/tests/Models/EditorDocMapperTest.php new file mode 100644 index 0000000..2da6132 --- /dev/null +++ b/tests/Models/EditorDocMapperTest.php @@ -0,0 +1,73 @@ +setCreatedBy(new NullAccount(1)); + $doc->setTitle('Title'); + $doc->setContent('Content'); + $doc->setPath('/some/test/path'); + + $id = EditorDocMapper::create($doc); + self::assertGreaterThan(0, $doc->getId()); + self::assertEquals($id, $doc->getId()); + + $docR = EditorDocMapper::get($doc->getId()); + self::assertEquals($doc->getCreatedAt()->format('Y-m-d'), $docR->getCreatedAt()->format('Y-m-d')); + self::assertEquals($doc->getCreatedBy()->getId(), $docR->getCreatedBy()->getId()); + self::assertEquals($doc->getContent(), $docR->getContent()); + self::assertEquals($doc->getTitle(), $docR->getTitle()); + self::assertEquals($doc->getPath(), $docR->getPath()); + } + + /** + * @group volume + * @group module + * @coversNothing + */ + public function testVolume() : void + { + for ($i = 0; $i < 100; ++$i) { + $text = new Text(); + $doc = new EditorDoc(); + + // Test other + + $doc->setCreatedBy(new NullAccount(\mt_rand(1, 1))); + $doc->setTitle($text->generateText(\mt_rand(3, 7))); + $doc->setContent($text->generateText(\mt_rand(20, 500))); + $doc->setPath('/some/test/path'); + + $id = EditorDocMapper::create($doc); + } + } +} diff --git a/tests/Models/EditorDocTest.php b/tests/Models/EditorDocTest.php new file mode 100644 index 0000000..88cb968 --- /dev/null +++ b/tests/Models/EditorDocTest.php @@ -0,0 +1,68 @@ +getId()); + self::assertEquals(0, $doc->getCreatedBy()->getId()); + self::assertEquals('', $doc->getTitle()); + self::assertEquals('', $doc->getContent()); + self::assertEquals('', $doc->getPlain()); + self::assertEquals((new \DateTime('now'))->format('Y-m-d'), $doc->getCreatedAt()->format('Y-m-d')); + } + + public function testSetGet() : void + { + $doc = new EditorDoc(); + + $doc->setCreatedBy(new NullAccount(1)); + self::assertEquals(1, $doc->getCreatedBy()->getId()); + + $doc->setTitle('Title'); + self::assertEquals('Title', $doc->getTitle()); + + $doc->setContent('Content'); + self::assertEquals('Content', $doc->getContent()); + + $doc->setPlain('Plain'); + self::assertEquals('Plain', $doc->getPlain()); + + $doc->setPath('/some/path'); + self::assertEquals('/some/path', $doc->getPath()); + + $arr = [ + 'id' => 0, + 'title' => $doc->getTitle(), + 'plain' => $doc->getPlain(), + 'content' => $doc->getContent(), + 'createdAt' => $doc->getCreatedAt(), + 'createdBy' => $doc->getCreatedBy(), + ]; + self::assertEquals($arr, $doc->toArray()); + self::assertEquals($arr, $doc->jsonSerialize()); + self::assertEquals(\json_encode($arr), $doc->__toString()); + } +}