FOSSology  4.5.1
Open Source License Compliance by Open Source Software
LicenseDecisionTest.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 */
7 
14 
16 use PHPUnit\Framework\TestCase;
17 
22 class LicenseDecisionTest extends TestCase
23 {
27  private $sampleData;
28 
32  protected function setUp(): void
33  {
34  $this->sampleData = [
35  'id' => 1,
36  'shortName' => 'GPL-3.0',
37  'fullName' => 'GNU General Public License 3.0',
38  'text' => 'Sample license text',
39  'url' => 'https://www.gnu.org/licenses/gpl-3.0.html',
40  'sources' => ['scanner', 'user'],
41  'acknowledgement' => 'Sample acknowledgement',
42  'comment' => 'Sample comment',
43  'isMainLicense' => true,
44  'risk' => null,
45  'isRemoved' => false,
46  'isCandidate' => false
47  ];
48  }
49 
51 
57  public function testConstructor()
58  {
59  $license = new LicenseDecision(...array_values($this->sampleData));
60  $this->assertInstanceOf(LicenseDecision::class, $license);
61  }
62 
64 
69  public function testGetSources()
70  {
71  $license = new LicenseDecision(...array_values($this->sampleData));
72  $this->assertEquals($this->sampleData['sources'], $license->getSources());
73  }
74 
79  public function testGetAcknowledgement()
80  {
81  $license = new LicenseDecision(...array_values($this->sampleData));
82  $this->assertEquals($this->sampleData['acknowledgement'], $license->getAcknowledgement());
83  }
84 
89  public function testGetComment()
90  {
91  $license = new LicenseDecision(...array_values($this->sampleData));
92  $this->assertEquals($this->sampleData['comment'], $license->getComment());
93  }
94 
99  public function testGetIsMainLicense()
100  {
101  $license = new LicenseDecision(...array_values($this->sampleData));
102  $this->assertEquals($this->sampleData['isMainLicense'], $license->getIsMainLicense());
103  }
104 
109  public function testGetIsRemoved()
110  {
111  $license = new LicenseDecision(...array_values($this->sampleData));
112  $this->assertEquals($this->sampleData['isRemoved'], $license->getIsRemoved());
113  }
114 
116 
121  public function testSetSources()
122  {
123  $license = new LicenseDecision(1);
124  $sources = ['manual', 'detected'];
125  $license->setSources($sources);
126  $this->assertEquals($sources, $license->getSources());
127  }
128 
133  public function testSetAcknowledgement()
134  {
135  $license = new LicenseDecision(1);
136  $acknowledgement = 'Updated acknowledgement';
137  $license->setAcknowledgement($acknowledgement);
138  $this->assertEquals($acknowledgement, $license->getAcknowledgement());
139  }
140 
145  public function testSetComment()
146  {
147  $license = new LicenseDecision(1);
148  $comment = 'Updated comment';
149  $license->setComment($comment);
150  $this->assertEquals($comment, $license->getComment());
151  }
152 
157  public function testSetIsMainLicense()
158  {
159  $license = new LicenseDecision(1);
160  $license->setIsMainLicense(true);
161  $this->assertTrue($license->getIsMainLicense());
162  }
163 
164 
165 
170  public function testSetIsRemoved()
171  {
172  $license = new LicenseDecision(1);
173  $license->setIsRemoved(true);
174  $this->assertTrue($license->getIsRemoved());
175  }
176 
181  public function testGetArray()
182  {
183  $license = new LicenseDecision(...array_values($this->sampleData));
184  $array = $license->getArray();
185  $this->assertEquals($this->sampleData, array_intersect_key($array, $this->sampleData));
186  }
187 
192  public function testGetJSON()
193  {
194  $license = new LicenseDecision(...array_values($this->sampleData));
195  $json = $license->getJSON();
196  $this->assertJson($json);
197  $this->assertEquals($license->getArray(), json_decode($json, true));
198  }
199 
204  public function testEmptyValues()
205  {
206  $license = new LicenseDecision(1);
207  $this->assertEmpty($license->getSources());
208  $this->assertEmpty($license->getAcknowledgement());
209  $this->assertEmpty($license->getComment());
210  $this->assertFalse($license->getIsMainLicense());
211  $this->assertFalse($license->getIsRemoved());
212  }
213 
218  public function testInheritance()
219  {
220  $license = new LicenseDecision(...array_values($this->sampleData));
221  $this->assertEquals($this->sampleData['id'], $license->getId());
222  }
223 
227  public function testAllowedKeys()
228  {
229  $expectedKeys = [
230  'shortName', 'fullName', 'text', 'url', 'risk', 'isCandidate', 'mergeRequest', 'source', 'acknowledgement', 'comment'
231  ];
232  $this->assertEquals($expectedKeys, LicenseDecision::ALLOWED_KEYS);
233  }
234 }
testSetIsMainLicense()
Test setter for isMainLicense.
testEmptyValues()
Test default values when initialized with minimal data.
testInheritance()
Test class inheritance structure.
testSetAcknowledgement()
Test setter for acknowledgement.
testGetAcknowledgement()
Test getter for acknowledgement.
testGetIsMainLicense()
Test getter for isMainLicense.