Skip to content

Commit

Permalink
Sync DbSchemaManager and README with rbac-db (#74)
Browse files Browse the repository at this point in the history
  • Loading branch information
arogachev committed Sep 15, 2023
1 parent 9c7eef5 commit 791e27f
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 12 deletions.
4 changes: 2 additions & 2 deletions README.md
Expand Up @@ -116,8 +116,8 @@ use Yiisoft\Rbac\Permission;
use Yiisoft\Rbac\RuleFactoryInterface;

/** @var DatabaseInterface $database */
$itemsStorage = new ItemsStorage(database: $database);
$assignmentsStorage = new AssignmentsStorage(database: $database);
$itemsStorage = new ItemsStorage($database);
$assignmentsStorage = new AssignmentsStorage($database);
/** @var RuleFactoryInterface $rulesContainer */
$manager = new TransactionalManagerDecorator(
new Manager(
Expand Down
13 changes: 11 additions & 2 deletions src/DbSchemaManager.php
Expand Up @@ -255,8 +255,17 @@ public function getItemsChildrenTable(): ?string
*/
private function initTables(?string $itemsTable, ?string $itemsChildrenTable, ?string $assignmentsTable): void
{
if ($itemsTable === null && $assignmentsTable === null) {
throw new InvalidArgumentException('At least items table or assignments table name must be set.');
if ($itemsTable === null && $itemsChildrenTable === null && $assignmentsTable === null) {
$message = 'At least items and items children table names or assignments table name must be set.';

throw new InvalidArgumentException($message);
}

if (
($itemsTable !== null && $itemsChildrenTable === null) ||
($itemsTable === null && $itemsChildrenTable !== null)
) {
throw new InvalidArgumentException('Items and items children table names must be set together.');
}

if ($itemsTable === '') {
Expand Down
16 changes: 8 additions & 8 deletions tests/Base/DbSchemaManagerTest.php
Expand Up @@ -43,19 +43,19 @@ public function dataInitWithEmptyTableNames(): array
return [
[
['itemsTable' => null, 'itemsChildrenTable' => null, 'assignmentsTable' => null],
'At least items table or assignments table name must be set.',
'At least items and items children table names or assignments table name must be set.',
],
[['itemsTable' => '', 'assignmentsTable' => 'assignments'], 'Items table name can\'t be empty.'],
[['itemsTable' => 'items', 'assignmentsTable' => ''], 'Assignments table name can\'t be empty.'],
[['itemsTable' => '', 'assignmentsTable' => ''], 'Items table name can\'t be empty.'],
[
['itemsTable' => 'items', 'itemsChildrenTable' => '', 'assignmentsTable' => 'assignments'],
'Items children table name can\'t be empty.',
['itemsTable' => 'items', 'itemsChildrenTable' => null, 'assignmentsTable' => null],
'Items and items children table names must be set together.',
],
[
['itemsTable' => '', 'itemsChildrenTable' => '', 'assignmentsTable' => ''],
'Items table name can\'t be empty.',
['itemsTable' => null, 'itemsChildrenTable' => 'items_children', 'assignmentsTable' => null],
'Items and items children table names must be set together.',
],
[['itemsTable' => ''], 'Items table name can\'t be empty.'],
[['itemsChildrenTable' => ''], 'Items children table name can\'t be empty.'],
[['assignmentsTable' => ''], 'Assignments table name can\'t be empty.'],
];
}

Expand Down

0 comments on commit 791e27f

Please sign in to comment.