FOSSology  4.5.1
Open Source License Compliance by Open Source Software
PermissionsTest.php
Go to the documentation of this file.
1 <?php
2 /*
3  SPDX-FileCopyrightText: © 2025 Harshit Gandhi <gandhiharshit716@gmail.com>
4 
5  SPDX-License-Identifier: GPL-2.0-only
6 */
13 
16 
17 use PHPUnit\Framework\TestCase;
18 
23 class PermissionsTest extends TestCase
24 {
26 
32  public function testConstructor()
33  {
34  $publicPerm = "read";
35  $permGroups = ["group1" => "write", "group2" => "read"];
36 
37  $permissions = new Permissions($publicPerm, $permGroups);
38 
39  $this->assertInstanceOf(Permissions::class, $permissions);
40  }
41 
43 
48  public function testGetPublicPerm()
49  {
50  $publicPerm = "read";
51  $permissions = new Permissions($publicPerm, []);
52  $this->assertEquals($publicPerm, $permissions->getpublicPerm());
53  }
54 
59  public function testGetPermGroups()
60  {
61  $permGroups = ["group1" => "write", "group2" => "read"];
62  $permissions = new Permissions("", $permGroups);
63  $this->assertEquals($permGroups, $permissions->getpermGroups());
64  }
65 
67 
72  public function testSetPublicPerm()
73  {
74  $permissions = new Permissions("none", []);
75  $newPublicPerm = "write";
76  $permissions->setpublicPerm($newPublicPerm);
77  $this->assertEquals($newPublicPerm, $permissions->getpublicPerm());
78  }
79 
84  public function testSetPermGroups()
85  {
86  $permissions = new Permissions("", []);
87  $newPermGroups = ["group3" => "admin"];
88  $permissions->setpermGroups($newPermGroups);
89  $this->assertEquals($newPermGroups, $permissions->getpermGroups());
90  }
91 
98  public function testGetArrayV1()
99  {
100  $publicPerm = "read";
101  $permGroups = ["group1" => "write"];
102 
103  $permissions = new Permissions($publicPerm, $permGroups);
104 
105  $expectedArray = [
106  'publicPerm' => $publicPerm,
107  'permGroups' => $permGroups
108  ];
109 
110  $this->assertEquals($expectedArray, $permissions->getArray(ApiVersion::V1));
111  }
112 
119  public function testGetArrayV2()
120  {
121  $publicPerm = "write";
122  $permGroups = ["group1" => "admin", "group2" => "write"];
123 
124  $permissions = new Permissions($publicPerm, $permGroups);
125 
126  $expectedArray = [
127  'publicPerm' => $publicPerm,
128  'permGroups' => $permGroups
129  ];
130 
131  $this->assertEquals($expectedArray, $permissions->getArray(ApiVersion::V2));
132  }
133 
140  public function testGetJSONV1()
141  {
142  $publicPerm = "read";
143  $permGroups = ["group1" => "write"];
144 
145  $permissions = new Permissions($publicPerm, $permGroups);
146 
147  $expectedArray = [
148  'publicPerm' => $publicPerm,
149  'permGroups' => $permGroups
150  ];
151 
152  $this->assertEquals(json_encode($expectedArray), $permissions->getJSON(ApiVersion::V1));
153  }
154 
161  public function testGetJSONV2()
162  {
163  $publicPerm = "write";
164  $permGroups = ["group1" => "admin"];
165 
166  $permissions = new Permissions($publicPerm, $permGroups);
167 
168  $expectedArray = [
169  'publicPerm' => $publicPerm,
170  'permGroups' => $permGroups
171  ];
172 
173  $this->assertEquals(json_encode($expectedArray), $permissions->getJSON(ApiVersion::V2));
174  }
175 }