fix unit tests

This commit is contained in:
Dennis Eichhorn 2021-09-28 19:35:26 +02:00
parent ec89e46654
commit 2d86917d35
2 changed files with 34 additions and 27 deletions

View File

@ -1071,11 +1071,19 @@ final class ApiController extends Controller
$done = $module === 'Admin' ? false : $this->app->moduleManager->activate($module); $done = $module === 'Admin' ? false : $this->app->moduleManager->activate($module);
$msg = $done ? 'Module successfully activated.' : 'Module not activated.'; $msg = $done ? 'Module successfully activated.' : 'Module not activated.';
$new = clone $old;
$new->setStatus(ModuleStatusUpdateType::ACTIVATE);
ModuleMapper::update($new);
break; break;
case ModuleStatusUpdateType::DEACTIVATE: case ModuleStatusUpdateType::DEACTIVATE:
$done = $module === 'Admin' ? false : $this->app->moduleManager->deactivate($module); $done = $module === 'Admin' ? false : $this->app->moduleManager->deactivate($module);
$msg = $done ? 'Module successfully deactivated.' : 'Module not deactivated.'; $msg = $done ? 'Module successfully deactivated.' : 'Module not deactivated.';
$new = clone $old;
$new->setStatus(ModuleStatusUpdateType::DEACTIVATE);
ModuleMapper::update($new);
break; break;
case ModuleStatusUpdateType::INSTALL: case ModuleStatusUpdateType::INSTALL:
$done = $this->app->moduleManager->isInstalled($module) ? true : false; $done = $this->app->moduleManager->isInstalled($module) ? true : false;
@ -1085,6 +1093,12 @@ final class ApiController extends Controller
break; break;
} }
if (!\is_file(__DIR__ . '/../../../Modules/' . $module . '/info.json')) {
$msg = 'Status change for unknown module requested';
$done = false;
break;
}
$moduleInfo = new ModuleInfo(__DIR__ . '/../../../Modules/' . $module . '/info.json'); $moduleInfo = new ModuleInfo(__DIR__ . '/../../../Modules/' . $module . '/info.json');
$moduleInfo->load(); $moduleInfo->load();
@ -1096,7 +1110,7 @@ final class ApiController extends Controller
$iRequest->header->account = 1; $iRequest->header->account = 1;
$iRequest->setData('status', ModuleStatusUpdateType::INSTALL); $iRequest->setData('status', ModuleStatusUpdateType::INSTALL);
$iRequest->setData('module', $key, true); $iRequest->setData('module', $key);
$this->apiModuleStatusUpdate($iRequest, $iResponse); $this->apiModuleStatusUpdate($iRequest, $iResponse);
} }
@ -1152,6 +1166,10 @@ final class ApiController extends Controller
$done = $module === 'Admin' ? false : $this->app->moduleManager->uninstall($module); $done = $module === 'Admin' ? false : $this->app->moduleManager->uninstall($module);
$msg = $done ? 'Module successfully uninstalled.' : 'Module not uninstalled.'; $msg = $done ? 'Module successfully uninstalled.' : 'Module not uninstalled.';
$new = clone $old;
$new->setStatus(ModuleStatusUpdateType::DELETE);
ModuleMapper::delete($new);
break; break;
default: default:
$done = false; $done = false;
@ -1159,21 +1177,22 @@ final class ApiController extends Controller
$response->header->status = RequestStatusCode::R_400; $response->header->status = RequestStatusCode::R_400;
} }
ModuleMapper::clearCache(); ModuleMapper::clearCache();
$new = ModuleMapper::get($module);
$this->app->eventManager->triggerSimilar( if ($done) {
'POST:Module:Admin-module-status-update', '', $new = ModuleMapper::get($module);
[
$request->header->account,
$old, $new,
StringUtils::intHash(ModuleMapper::class), 'module-status',
$module,
self::NAME,
$request->getOrigin(),
]
);
if (!$done) { $this->app->eventManager->triggerSimilar(
'POST:Module:Admin-module-status-update', '',
[
$request->header->account,
$old, $new,
StringUtils::intHash(ModuleMapper::class), 'module-status',
$module,
self::NAME,
$request->getOrigin(),
]
);
} else {
$response->header->status = RequestStatusCode::R_400; $response->header->status = RequestStatusCode::R_400;
} }

View File

@ -41,10 +41,9 @@ class ModuleTest extends \PHPUnit\Framework\TestCase
*/ */
public function testDefault() : void public function testDefault() : void
{ {
self::assertEquals(0, $this->module->getId()); self::assertEquals('', $this->module->getId());
self::assertInstanceOf('\DateTimeImmutable', $this->module->createdAt); self::assertInstanceOf('\DateTimeImmutable', $this->module->createdAt);
self::assertEquals('', $this->module->name); self::assertEquals('', $this->module->name);
self::assertEquals('', $this->module->description);
self::assertEquals(ModuleStatus::INACTIVE, $this->module->getStatus()); self::assertEquals(ModuleStatus::INACTIVE, $this->module->getStatus());
self::assertEquals(\json_encode($this->module->jsonSerialize()), $this->module->__toString()); self::assertEquals(\json_encode($this->module->jsonSerialize()), $this->module->__toString());
self::assertEquals($this->module->jsonSerialize(), $this->module->toArray()); self::assertEquals($this->module->jsonSerialize(), $this->module->toArray());
@ -61,17 +60,6 @@ class ModuleTest extends \PHPUnit\Framework\TestCase
self::assertEquals('Name', $this->module->name); self::assertEquals('Name', $this->module->name);
} }
/**
* @testdox The description can be set and returned
* @covers Modules\Admin\Models\Module
* @group module
*/
public function testDescriptionInputOutput() : void
{
$this->module->description = 'Desc';
self::assertEquals('Desc', $this->module->description);
}
/** /**
* @testdox The status can be set and returned * @testdox The status can be set and returned
* @covers Modules\Admin\Models\Module * @covers Modules\Admin\Models\Module