66 lines
1.9 KiB
Perl
66 lines
1.9 KiB
Perl
|
use 5.32.1;
|
||
|
|
||
|
use Test::Most tests => 5;
|
||
|
|
||
|
use strict;
|
||
|
use warnings;
|
||
|
|
||
|
use Const::Fast;
|
||
|
|
||
|
use BeastBB::Mock::Controller;
|
||
|
use BeastBB::DAO::GroupManager;
|
||
|
|
||
|
use Data::Dumper;
|
||
|
|
||
|
const my $APP => BeastBB::Mock::Controller->new;
|
||
|
const my $GROUP_MANAGER => BeastBB::DAO::GroupManager->new( app => $APP );
|
||
|
|
||
|
{
|
||
|
use_ok 'BeastBB::DAO::GroupManager';
|
||
|
}
|
||
|
|
||
|
{
|
||
|
$APP->db->Mock(
|
||
|
sql =>
|
||
|
'SELECT "id_group", "groupname" FROM "group" WHERE "groupname" = ?',
|
||
|
results => [ [ 'id_group', 'groupname' ], [ 1, 'example_group' ] ]
|
||
|
);
|
||
|
my $maybe_group = $GROUP_MANAGER->Get( groupname => 'example_group' );
|
||
|
die $maybe_group->ErrorMessage if $maybe_group->IsError;
|
||
|
my $group = $maybe_group->Content;
|
||
|
ok $group->isa('BeastBB::Model::Group'), 'We can recover groups.';
|
||
|
is_deeply $group->Hash, { groupname => 'example_group', id_group => 1 },
|
||
|
'The group hash after groupname recovery is ok.';
|
||
|
}
|
||
|
|
||
|
{
|
||
|
$APP->db->Mock(
|
||
|
sql =>
|
||
|
'SELECT "id_group", "groupname" FROM "group" WHERE "groupname" = ?',
|
||
|
results => [ [ 'id_group', 'groupname' ], [ 1, 'example_group' ] ]
|
||
|
);
|
||
|
$APP->db->Mock(
|
||
|
sql =>
|
||
|
'SELECT privilege.name FROM group_privilege INNER JOIN privilege USING (id_privilege) WHERE id_group=?',
|
||
|
results => [
|
||
|
['name'],
|
||
|
['example_privilege'],
|
||
|
['example_privilege_1']
|
||
|
]
|
||
|
);
|
||
|
my $maybe_group = $GROUP_MANAGER->Get(
|
||
|
groupname => 'example_group',
|
||
|
recover_privileges => 1
|
||
|
);
|
||
|
die $maybe_group->ErrorMessage if $maybe_group->IsError;
|
||
|
my $group = $maybe_group->Content;
|
||
|
ok $group->isa('BeastBB::Model::Group'), 'We can recover groups.';
|
||
|
is_deeply $group->Hash,
|
||
|
{
|
||
|
groupname => 'example_group',
|
||
|
id_group => 1,
|
||
|
privileges => { example_privilege => 1, example_privilege_1 => 1 }
|
||
|
},
|
||
|
'The group hash after groupname recovery is ok.';
|
||
|
}
|