FOSSology  4.7.1
Open Source License Compliance by Open Source Software
ReuserTest.php
Go to the documentation of this file.
1 <?php
2 /*
3  SPDX-FileCopyrightText: © 2020 Siemens AG
4  Author: Gaurav Mishra <mishra.gaurav@siemens.com>
5 
6  SPDX-License-Identifier: GPL-2.0-only
7 */
14 
17 
22 class ReuserTest extends \PHPUnit\Framework\TestCase
23 {
25 
31  public function testConstructor()
32  {
33  $reuser = new Reuser(2, 'fossy', true);
34  $this->assertInstanceOf(Reuser::class, $reuser);
35  }
36 
41  public function testReuserConst()
42  {
43  $expectedArray = [
44  "reuse_upload" => 2,
45  "reuse_group" => 'fossy',
46  "reuse_main" => true,
47  "reuse_enhanced" => false,
48  "reuse_copyright" => false,
49  "reuse_report" => false,
50  "reuse_bulk" => false
51  ];
52 
53  $actualReuser = new Reuser(2, 'fossy', true);
54 
55  $this->assertEquals($expectedArray, $actualReuser->getArray());
56  }
57 
63  public function testReuserException()
64  {
65  $this->expectException(\UnexpectedValueException::class);
66  $this->expectExceptionMessage("reuse_upload should be integer or array of integers");
67  $object = new Reuser('alpha', 2);
68  }
69 
74  public function testReuserMultipleUploads()
75  {
76  $expectedArray = [
77  "reuse_upload" => [2, 5, 10],
78  "reuse_group" => 'fossy',
79  "reuse_main" => true,
80  "reuse_enhanced" => false,
81  "reuse_copyright" => false,
82  "reuse_report" => false,
83  "reuse_bulk" => false
84  ];
85 
86  $actualReuser = new Reuser([2, 5, 10], 'fossy', true);
87 
88  $this->assertEquals($expectedArray, $actualReuser->getArray());
89  $this->assertEquals([2, 5, 10], $actualReuser->getReuseUploads());
90  }
91 
96  public function testReuseUploadsSingle()
97  {
98  $reuser = new Reuser(3, 'fossy');
99  $this->assertEquals([3], $reuser->getReuseUploads());
100  }
101 
107  {
108  $this->expectException(\UnexpectedValueException::class);
109  $this->expectExceptionMessage("reuse_upload should be integer or array of integers");
110  $object = new Reuser([], 'fossy');
111  }
112 
118  {
119  $this->expectException(\UnexpectedValueException::class);
120  $this->expectExceptionMessage("reuse_upload should be integer or array of integers");
121  $object = new Reuser([1, 'bad', 3], 'fossy');
122  }
123 
129  public function testSetUsingArrayV1()
130  {
131  $this->testSetUsingArray(ApiVersion::V1);
132  }
133 
139  public function testSetUsingArrayV2()
140  {
141  $this->testSetUsingArray(ApiVersion::V2);
142  }
143 
149  private function testSetUsingArray($version)
150  {
151  if ($version == ApiVersion::V1) {
152  $expectedArray = [
153  "reuse_upload" => 2,
154  "reuse_group" => 'fossy',
155  "reuse_main" => 'true',
156  "reuse_enhanced" => false,
157  "reuse_copyright" => false,
158  "reuse_report" => false,
159  "reuse_bulk" => false
160  ];
161  } else {
162  $expectedArray = [
163  "reuseUpload" => 2,
164  "reuseGroup" => 'fossy',
165  "reuseMain" => 'true',
166  "reuseEnhanced" => false,
167  "reuseCopyright" => false,
168  "reuseReport" => false,
169  "reuseBulk" => false
170  ];
171  }
172 
173  $actualReuser = new Reuser(1, 'fossy');
174  $actualReuser->setUsingArray($expectedArray, $version);
175 
176  $expectedArray[$version == ApiVersion::V1? "reuse_main" : "reuseMain"] = true;
177  $this->assertEquals($expectedArray, $actualReuser->getArray($version));
178  }
179 
186  {
187  $expectedArray = [
188  "reuse_upload" => 2,
189  "reuse_group" => 'fossy',
190  "reuse_main" => 'true',
191  "reuse_enhanced" => false,
192  "reuse_copyright" => 'true',
193  "reuse_report" => false,
194  "reuse_bulk" => false
195  ];
196 
197  $actualReuser = new Reuser(1, 'fossy');
198  $actualReuser->setUsingArray($expectedArray);
199 
200  $expectedArray["reuse_main"] = true;
201  $expectedArray["reuse_copyright"] = true;
202  $this->assertEquals($expectedArray, $actualReuser->getArray());
203  }
204 
209  public function testReuseBulkOption()
210  {
211  $reuser = new Reuser(2, 'fossy');
212  $this->assertFalse($reuser->getReuseBulk());
213 
214  $reuser->setReuseBulk(true);
215  $this->assertTrue($reuser->getReuseBulk());
216 
217  $arrV1 = $reuser->getArray(ApiVersion::V1);
218  $this->assertTrue($arrV1['reuse_bulk']);
219 
220  $arrV2 = $reuser->getArray(ApiVersion::V2);
221  $this->assertTrue($arrV2['reuseBulk']);
222 
223  $reuser2 = new Reuser(2, 'fossy');
224  $reuser2->setUsingArray(['reuse_bulk' => 'true', 'reuse_upload' => 2, 'reuse_group' => 'fossy'], ApiVersion::V1);
225  $this->assertTrue($reuser2->getReuseBulk());
226 
227  $reuser3 = new Reuser(2, 'fossy');
228  $reuser3->setUsingArray(['reuseBulk' => true, 'reuseUpload' => 2, 'reuseGroup' => 'fossy'], ApiVersion::V2);
229  $this->assertTrue($reuser3->getReuseBulk());
230  }
231 
237  public function testSetUsingArrayException()
238  {
239  $expectedArray = [
240  "reuse_upload" => 'alpha',
241  "reuse_group" => 'fossy',
242  "reuse_main" => 'true',
243  "reuse_enhanced" => false
244  ];
245 
246  $this->expectException(\UnexpectedValueException::class);
247  $this->expectExceptionMessage("Reuse upload should be an integer or array of integers!");
248 
249  $actualReuser = new Reuser(1, 'fossy');
250  $actualReuser->setUsingArray($expectedArray);
251  }
252 
258  {
259  $inputArray = [
260  "reuse_upload" => [2, 5, 10],
261  "reuse_group" => 'fossy',
262  "reuse_main" => 'true',
263  "reuse_enhanced" => false,
264  "reuse_copyright" => false,
265  "reuse_report" => false
266  ];
267 
268  $reuser = new Reuser(1, 'fossy');
269  $reuser->setUsingArray($inputArray, ApiVersion::V1);
270 
271  $this->assertEquals([2, 5, 10], $reuser->getReuseUpload());
272  $this->assertEquals([2, 5, 10], $reuser->getReuseUploads());
273  }
274 
280  {
281  $inputArray = [
282  "reuseUpload" => [2, 5, 10],
283  "reuseGroup" => 'fossy',
284  "reuseMain" => 'true',
285  "reuseEnhanced" => false,
286  "reuseCopyright" => false,
287  "reuseReport" => false
288  ];
289 
290  $reuser = new Reuser(1, 'fossy');
291  $reuser->setUsingArray($inputArray, ApiVersion::V2);
292 
293  $this->assertEquals([2, 5, 10], $reuser->getReuseUpload());
294  $this->assertEquals([2, 5, 10], $reuser->getReuseUploads());
295  }
296 }
Model to hold info required by Reuser agent.
Definition: Reuser.php:18