FOSSology  4.5.1
Open Source License Compliance by Open Source Software
UserGroupMemberTest.php
Go to the documentation of this file.
1 <?php
2 /*
3  SPDX-FileCopyrightText: © 2024 Valens Niyonsenga <valensniyonsenga2003@gmail.com>
4  SPDX-License-Identifier: GPL-2.0-only
5 */
6 
12 
19 use Monolog\Test\TestCase;
20 use Mockery as M;
21 class UserGroupMemberTest extends TestCase
22 {
23 
24  private $dbHelper;
25  private $restHelper;
26  private $userDao;
27  protected function setup(): void
28  {
29  global $container;
30  $container = M::mock('ContainerBuilder');
31  $this->dbHelper = M::mock(DbHelper::class);
32  $this->restHelper = M::mock(RestHelper::class);
33  $this->userDao = M::mock(UserDao::class);
34 
35  $this->restHelper->shouldReceive('getDbHelper')->andReturn($this->dbHelper);
36 
37  $container->shouldReceive('get')->withArgs(array(
38  'helper.restHelper'))->andReturn($this->restHelper);
39  $this->restHelper->shouldReceive('getUserDao')->andReturn($this->userDao);
40  }
41 
43 
49  public function testConstructor()
50  {
51  $user = new User(1, "fossy", "Admin user", "fossy@gmail.com", "admin", 4, "fossy@gmail.com", "monk", 3, null);
52  $userGroupMember = new UserGroupMember($user, 3);
53  $this->assertInstanceOf(UserGroupMember::class, $userGroupMember);
54  }
55 
63  private function getUserGroupMemberInfo($version = ApiVersion::V2)
64  {
65 
66  $user = new User(1, "fossy", "Admin user", "fossy@gmail.com", "admin", 4, "fossy@gmail.com", "monk", 3, null);
67  if ($version == ApiVersion::V1) {
68  $expectedArray = [
69  'user' => $user->getArray($version),
70  'group_perm' => 0
71  ];
72  } else {
73  $expectedArray = [
74  'user' => $user->getArray($version),
75  'groupPerm' => 0
76  ];
77  }
78 
79  $obj = new UserGroupMember($user, $expectedArray['group_perm']);
80  return [
81  'expectedArray' => $expectedArray,
82  'obj' => $obj
83  ];
84  }
85 
86  // Getter Tests
87  public function testGetUser()
88  {
89  $user = new User(1, "fossy", "Admin user", "fossy@gmail.com", "admin", 4, "fossy@gmail.com", "monk", 3, null);
90  $userGroupMember = new UserGroupMember($user, 3);
91  $this->assertEquals($user, $userGroupMember->getUser());
92  }
93 
94  public function testGetGroupPerm()
95  {
96  $user = new User(1, "fossy", "Admin user", "fossy@gmail.com", "admin", 4, "fossy@gmail.com", "monk", 3, null);
97  $userGroupMember = new UserGroupMember($user, 3);
98  $this->assertEquals(3, $userGroupMember->getGroupPerm());
99  }
100 
101  // Setter Tests
102  public function testSetUser()
103  {
104  $user1 = new User(1, "fossy", "Admin user", "fossy@gmail.com", "admin", 4, "fossy@gmail.com", 'monk', 3, null);
105  $user2 = new User(2, "newuser", "New user", "newuser@gmail.com", "user", 5, "newuser@gmail.com", 'monk', 4, null);
106  $userGroupMember = new UserGroupMember($user1, 3);
107 
108  $userGroupMember->setUser($user2);
109  $this->assertEquals($user2, $userGroupMember->getUser());
110  }
111 
112  public function testSetGroupPerm()
113  {
114  $user = new User(1, "fossy", "Admin user", "fossy@gmail.com", "admin", 4, "fossy@gmail.com", "monk", 3, null);
115  $userGroupMember = new UserGroupMember($user, 3);
116 
117  $userGroupMember->setGroupPerm(5);
118  $this->assertEquals(5, $userGroupMember->getGroupPerm());
119  }
120 
121  // Test for JSON output
122  public function testGetJSON()
123  {
124  $data = $this->getUserGroupMemberInfo(ApiVersion::V1);
125  $this->assertJsonStringEqualsJsonString(
126  json_encode($data['expectedArray']),
127  $data['obj']->getJSON()
128  );
129  }
130 
131  // Test for Array output
132  public function testGetArrayV1()
133  {
134  $data = $this->getUserGroupMemberInfo(ApiVersion::V1);
135  $this->assertEquals($data['expectedArray'], $data['obj']->getArray(ApiVersion::V1));
136  }
137 }
Provides helper methods to access database for REST api.
Definition: DbHelper.php:38
Provides various DAO helper functions for REST api.
Definition: RestHelper.php:32
Model to hold user information.
Definition: User.php:21