use 5.32.1; use Test::Most tests => 9; use strict; use warnings; use Const::Fast; use BeastBB::Mock::Controller; { use_ok 'BeastBB::DAO::GroupManager'; } const my $APP => BeastBB::Mock::Controller->new; const my $GROUP_MANAGER => BeastBB::DAO::GroupManager->new( app => $APP ); { $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 by groupname.'; 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 "id_group" = ?', results => [ [ 'id_group', 'groupname' ], [ 1, 'example_group' ] ] ); my $maybe_group = $GROUP_MANAGER->Get( id_group => 1 ); die $maybe_group->ErrorMessage if $maybe_group->IsError; my $group = $maybe_group->Content; ok $group->isa('BeastBB::Model::Group'), 'We can recover groups by id_group.'; is_deeply $group->Hash, { groupname => 'example_group', id_group => 1 }, 'The group hash after id_group 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 with privileges by id_group.'; 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.'; } { $APP->db->Mock( sql => 'SELECT "id_group", "groupname" FROM "group" WHERE "id_group" = ?', 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( id_group => 1, 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 with privileges by id_group.'; is_deeply $group->Hash, { groupname => 'example_group', id_group => 1, privileges => { example_privilege => 1, example_privilege_1 => 1 } }, 'The group hash after id_group recovery is ok.'; }