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  ];
51 
52  $actualReuser = new Reuser(2, 'fossy', true);
53 
54  $this->assertEquals($expectedArray, $actualReuser->getArray());
55  }
56 
62  public function testReuserException()
63  {
64  $this->expectException(\UnexpectedValueException::class);
65  $this->expectExceptionMessage("reuse_upload should be integer or array of integers");
66  $object = new Reuser('alpha', 2);
67  }
68 
73  public function testReuserMultipleUploads()
74  {
75  $expectedArray = [
76  "reuse_upload" => [2, 5, 10],
77  "reuse_group" => 'fossy',
78  "reuse_main" => true,
79  "reuse_enhanced" => false,
80  "reuse_copyright" => false,
81  "reuse_report" => false
82  ];
83 
84  $actualReuser = new Reuser([2, 5, 10], 'fossy', true);
85 
86  $this->assertEquals($expectedArray, $actualReuser->getArray());
87  $this->assertEquals([2, 5, 10], $actualReuser->getReuseUploads());
88  }
89 
94  public function testReuseUploadsSingle()
95  {
96  $reuser = new Reuser(3, 'fossy');
97  $this->assertEquals([3], $reuser->getReuseUploads());
98  }
99 
105  {
106  $this->expectException(\UnexpectedValueException::class);
107  $this->expectExceptionMessage("reuse_upload should be integer or array of integers");
108  $object = new Reuser([], 'fossy');
109  }
110 
116  {
117  $this->expectException(\UnexpectedValueException::class);
118  $this->expectExceptionMessage("reuse_upload should be integer or array of integers");
119  $object = new Reuser([1, 'bad', 3], 'fossy');
120  }
121 
127  public function testSetUsingArrayV1()
128  {
129  $this->testSetUsingArray(ApiVersion::V1);
130  }
131 
137  public function testSetUsingArrayV2()
138  {
139  $this->testSetUsingArray(ApiVersion::V2);
140  }
141 
147  private function testSetUsingArray($version)
148  {
149  if ($version == ApiVersion::V1) {
150  $expectedArray = [
151  "reuse_upload" => 2,
152  "reuse_group" => 'fossy',
153  "reuse_main" => 'true',
154  "reuse_enhanced" => false,
155  "reuse_copyright" => false,
156  "reuse_report" => false
157  ];
158  } else {
159  $expectedArray = [
160  "reuseUpload" => 2,
161  "reuseGroup" => 'fossy',
162  "reuseMain" => 'true',
163  "reuseEnhanced" => false,
164  "reuseCopyright" => false,
165  "reuseReport" => false
166  ];
167  }
168 
169  $actualReuser = new Reuser(1, 'fossy');
170  $actualReuser->setUsingArray($expectedArray, $version);
171 
172  $expectedArray[$version == ApiVersion::V1? "reuse_main" : "reuseMain"] = true;
173  $this->assertEquals($expectedArray, $actualReuser->getArray($version));
174  }
175 
182  {
183  $expectedArray = [
184  "reuse_upload" => 2,
185  "reuse_group" => 'fossy',
186  "reuse_main" => 'true',
187  "reuse_enhanced" => false,
188  "reuse_copyright" => 'true',
189  "reuse_report" => false
190  ];
191 
192  $actualReuser = new Reuser(1, 'fossy');
193  $actualReuser->setUsingArray($expectedArray);
194 
195  $expectedArray["reuse_main"] = true;
196  $expectedArray["reuse_copyright"] = true;
197  $this->assertEquals($expectedArray, $actualReuser->getArray());
198  }
199 
205  public function testSetUsingArrayException()
206  {
207  $expectedArray = [
208  "reuse_upload" => 'alpha',
209  "reuse_group" => 'fossy',
210  "reuse_main" => 'true',
211  "reuse_enhanced" => false
212  ];
213 
214  $this->expectException(\UnexpectedValueException::class);
215  $this->expectExceptionMessage("Reuse upload should be an integer or array of integers!");
216 
217  $actualReuser = new Reuser(1, 'fossy');
218  $actualReuser->setUsingArray($expectedArray);
219  }
220 
226  {
227  $inputArray = [
228  "reuse_upload" => [2, 5, 10],
229  "reuse_group" => 'fossy',
230  "reuse_main" => 'true',
231  "reuse_enhanced" => false,
232  "reuse_copyright" => false,
233  "reuse_report" => false
234  ];
235 
236  $reuser = new Reuser(1, 'fossy');
237  $reuser->setUsingArray($inputArray, ApiVersion::V1);
238 
239  $this->assertEquals([2, 5, 10], $reuser->getReuseUpload());
240  $this->assertEquals([2, 5, 10], $reuser->getReuseUploads());
241  }
242 
248  {
249  $inputArray = [
250  "reuseUpload" => [2, 5, 10],
251  "reuseGroup" => 'fossy',
252  "reuseMain" => 'true',
253  "reuseEnhanced" => false,
254  "reuseCopyright" => false,
255  "reuseReport" => false
256  ];
257 
258  $reuser = new Reuser(1, 'fossy');
259  $reuser->setUsingArray($inputArray, ApiVersion::V2);
260 
261  $this->assertEquals([2, 5, 10], $reuser->getReuseUpload());
262  $this->assertEquals([2, 5, 10], $reuser->getReuseUploads());
263  }
264 }
Model to hold info required by Reuser agent.
Definition: Reuser.php:18