9 namespace Fossology\Lib\Dao;
27 private $assertCountBefore;
29 protected function setUp() :
void
32 $this->
dbManager = $this->testDb->getDbManager();
33 $this->logger =
new Logger(
"test");
35 $this->assertCountBefore = \Hamcrest\MatcherAssert::getCount();
38 protected function tearDown() :
void
40 $this->addToAssertionCount(\Hamcrest\MatcherAssert::getCount()-$this->assertCountBefore);
45 public function testGetUserGroupMap()
47 $this->testDb->createPlainTables(array(
'groups',
'group_user_member'));
48 $this->testDb->insertData(array(
'groups',
'group_user_member'));
50 $defaultGroups = $this->userDao->getUserGroupMap($userId=1);
51 assertThat($defaultGroups, equalTo(array(1=>
'Default User')));
54 public function testGetAdminGroupMap()
56 $this->testDb->createPlainTables(array(
'groups',
'group_user_member'));
57 $this->testDb->insertData(array(
'groups',
'group_user_member'));
58 defined(
'PLUGIN_DB_ADMIN') or define(
'PLUGIN_DB_ADMIN',10);
60 $defaultGroups = $this->userDao->getAdminGroupMap($userId=2,$userLevel=
PLUGIN_DB_ADMIN);
61 assertThat($defaultGroups, equalTo(array(1=>
'Default User',2=>
'fossy')));
65 public function testGetDeletableAdminGroupMap()
67 $this->testDb->createPlainTables(array(
'groups',
'group_user_member',
'users'));
70 $this->
dbManager->insertTableRow(
'users',array(
'user_pk'=>$userId,
'user_name'=>$username));
71 $this->
dbManager->insertTableRow(
'groups', array(
'group_pk'=>201,
'group_name'=>$username));
72 $this->
dbManager->insertTableRow(
'group_user_member', array(
'group_fk'=>201,
'user_fk'=>$userId));
73 $deletable = array(
'group_pk'=>202,
'group_name'=>
'anyName');
74 $this->
dbManager->insertTableRow(
'groups', $deletable);
75 $this->
dbManager->insertTableRow(
'group_user_member', array(
'group_fk'=>202,
'user_fk'=>$userId,
'group_perm'=>1));
77 $groupsAsAdmin = $this->userDao->getDeletableAdminGroupMap($userId,$userLevel=
PLUGIN_DB_ADMIN);
78 assertThat($groupsAsAdmin, equalTo(array($deletable[
'group_pk']=>$deletable[
'group_name'])));
80 $groups = $this->userDao->getDeletableAdminGroupMap($userId);
81 assertThat($groups, equalTo(array($deletable[
'group_pk']=>$deletable[
'group_name'])));
83 $groupsAsForeign = $this->userDao->getDeletableAdminGroupMap($userId+1);
84 assertThat($groupsAsForeign, equalTo(array()));
87 public function testAddGroup()
89 $this->
dbManager->queryOnce(
'CREATE TABLE groups (group_pk integer NOT NULL PRIMARY KEY, group_name varchar(64))');
90 $this->testDb->insertData(array(
'groups'));
91 $groupId = $this->userDao->addGroup($groupName=
'newGroup');
92 $row = $this->
dbManager->getSingleRow(
'SELECT group_name FROM groups WHERE group_pk=$1',array($groupId));
93 assertThat($row[
'group_name'], equalTo($groupName));
96 public function testAddGroupFailIfAlreadyExists()
98 $this->expectException(Exception::class);
99 $this->testDb->createPlainTables(array(
'groups',
'users'));
100 $this->testDb->insertData(array(
'groups',
'user'));
101 $this->userDao->addGroup(
'fossy');
104 public function testAddGroupFailEmptyName()
106 $this->expectException(Exception::class);
107 $this->testDb->createPlainTables(array(
'groups',
'users'));
108 $this->testDb->insertData(array(
'groups',
'user'));
109 $this->userDao->addGroup(
'');
112 public function testGetUserName()
116 $this->testDb->createPlainTables(array(
'users'));
117 $this->
dbManager->insertTableRow(
'users',array(
'user_pk'=>$userId,
'user_name'=>$username));
118 $uName = $this->userDao->getUserName($userId);
119 assertThat($uName,equalTo($username));
122 public function testGetUserNameFail()
124 $this->expectException(Exception::class);
125 $this->expectExceptionMessage(
"unknown user with id=101");
126 $this->testDb->createPlainTables(array(
'users'));
127 $this->userDao->getUserName(101);
130 public function testGetGroupIdByName()
132 $this->testDb->createPlainTables(array(
'groups'));
133 $this->testDb->insertData(array(
'groups'));
134 $groupId = $this->userDao->getGroupIdByName(
'fossy');
135 assertThat($groupId,equalTo(2));
138 public function testAddGroupMembership()
140 $this->testDb->createPlainTables(array(
'users',
'groups',
'group_user_member'));
141 $this->testDb->insertData(array(
'users',
'groups',
'group_user_member'));
142 $this->userDao->addGroupMembership($groupId=2,$userId=1);
143 $map = $this->userDao->getUserGroupMap($userId);
144 assertThat($map,hasKey($groupId));
#define PLUGIN_DB_ADMIN
Plugin requires admin level permission on DB.
fo_dbManager * dbManager
fo_dbManager object