14 if (!function_exists(
'RepPathItem')) {
17 return dirname(__DIR__) .
"/tests.xml";
59 use Psr\Http\Message\ServerRequestInterface;
60 use Slim\Psr7\Factory\StreamFactory;
61 use Slim\Psr7\Headers;
62 use Slim\Psr7\Request;
63 use Slim\Psr7\Response;
65 use Symfony\Component\HttpFoundation\JsonResponse;
131 private $streamFactory;
183 $container = M::mock(
'ContainerBuilder');
184 $this->dbHelper = M::mock(DbHelper::class);
185 $this->
dbManager = M::mock(DbManager::class);
186 $this->restHelper = M::mock(RestHelper::class);
187 $this->uploadDao = M::mock(UploadDao::class);
188 $this->decisionTypes = M::mock(DecisionTypes::class);
189 $this->licenseDao = M::mock(LicenseDao::class);
190 $this->clearingDecisionEventProcessor = M::mock(ClearingDecisionProcessor::class);
191 $this->viewFilePlugin = M::mock(
'ui_view');
192 $this->viewLicensePlugin = M::mock(ClearingView::class);
193 $this->clearingDao = M::mock(ClearingDao::class);
194 $this->decisionScopes = M::mock(DecisionScopes::class);
195 $this->highlightDao = M::mock(HighlightDao::class);
196 $this->clearingEventTypes = M::mock(ClearingEventTypes::class);
197 $this->itemTreeBoundsMock = M::mock(ItemTreeBounds::class);
198 $this->concludeLicensePlugin = M::mock(AjaxClearingView::class);
199 $this->licenseDao = M::mock(LicenseDao::class);
200 $this->changeLicenseBulk = M::mock(ChangeLicenseBulk::class);
201 $this->licenseDao = M::mock(LicenseDao::class);
203 $this->restHelper->shouldReceive(
'getPlugin')
204 ->withArgs(array(
'view'))->andReturn($this->viewFilePlugin);
205 $this->restHelper->shouldReceive(
'getPlugin')
206 ->withArgs(array(
'view-license'))->andReturn($this->viewLicensePlugin);
207 $this->restHelper->shouldReceive(
'getPlugin')
208 ->withArgs(array(
'conclude-license'))->andReturn($this->concludeLicensePlugin);
209 $this->restHelper->shouldReceive(
'getPlugin')
210 ->withArgs(array(
'change-license-bulk'))->andReturn($this->changeLicenseBulk);
212 $this->
dbManager->shouldReceive(
'getSingleRow')
213 ->withArgs([M::any(), [$this->groupId, UploadStatus::OPEN,
215 $this->dbHelper->shouldReceive(
'getDbManager')->andReturn($this->
dbManager);
216 $this->restHelper->shouldReceive(
'getDbHelper')->andReturn($this->dbHelper);
217 $this->restHelper->shouldReceive(
'getGroupId')->andReturn($this->groupId);
218 $this->restHelper->shouldReceive(
'getUserId')->andReturn($this->userId);
219 $this->restHelper->shouldReceive(
'getUploadDao')
220 ->andReturn($this->uploadDao);
221 $container->shouldReceive(
'get')->withArgs(array(
222 'helper.restHelper'))->andReturn($this->restHelper);
223 $container->shouldReceive(
'get')->withArgs([
'decision.types'])->andReturn($this->decisionTypes);
224 $container->shouldReceive(
'get')->withArgs([
'dao.clearing'])->andReturn($this->clearingDao);
225 $container->shouldReceive(
'get')->withArgs([
'dao.license'])->andReturn($this->licenseDao);
227 $container->shouldReceive(
'get')->withArgs([
'businessrules.clearing_decision_processor'])->andReturn($this->clearingDecisionEventProcessor);
228 $container->shouldReceive(
'get')->withArgs([
'dao.highlight'])->andReturn($this->highlightDao);
229 $container->shouldReceive(
'get')->withArgs([
'dao.license'])->andReturn($this->licenseDao);
231 $this->assertCountBefore = \Hamcrest\MatcherAssert::getCount();
232 $this->streamFactory =
new StreamFactory();
243 $response->getBody()->seek(0);
244 return json_decode($response->getBody()->getContents(),
true);
256 $expectedContent = file_get_contents(dirname(__DIR__) .
"/tests.xml");
258 $this->uploadDao->shouldReceive(
'isAccessible')
259 ->withArgs([$upload_pk, $this->groupId])->andReturn(
true);
260 $this->dbHelper->shouldReceive(
'doesIdExist')
261 ->withArgs([
"upload",
"upload_pk", $upload_pk])->andReturn(
true);
262 $this->uploadDao->shouldReceive(
"getUploadtreeTableName")->withArgs([$upload_pk])->andReturn(
"uploadtree");
263 $this->dbHelper->shouldReceive(
'doesIdExist')
264 ->withArgs([
"uploadtree",
"uploadtree_pk", $item_pk])->andReturn(
true);
266 $this->viewFilePlugin->shouldReceive(
'getText')->withArgs([M::any(), 0, 0, -1,
null,
false,
true])->andReturn($expectedContent);
269 $expectedResponse->getBody()->write($expectedContent);
270 $actualResponse = $this->uploadTreeController->viewLicenseFile(
null,
new ResponseHelper(), [
'id' => $upload_pk,
'itemId' => $item_pk]);
271 $this->assertEquals($expectedResponse->getStatusCode(), $actualResponse->getStatusCode());
272 $this->assertEquals($expectedResponse->getBody()->getContents(), $actualResponse->getBody()->getContents());
287 "globalDecision" =>
false,
289 $dummyDecisionTypes = array_map(
function ($i) {
293 $this->decisionTypes->shouldReceive(
'getMap')
294 ->andReturn($dummyDecisionTypes);
295 $this->uploadDao->shouldReceive(
"getUploadtreeTableName")->withArgs([$upload_pk])->andReturn(
"uploadtree");
296 $this->uploadDao->shouldReceive(
'isAccessible')
297 ->withArgs([$upload_pk, $this->groupId])->andReturn(
true);
298 $this->dbHelper->shouldReceive(
'doesIdExist')
299 ->withArgs([
"upload",
"upload_pk", $upload_pk])->andReturn(
true);
300 $this->dbHelper->shouldReceive(
'doesIdExist')
301 ->withArgs([
"uploadtree",
"uploadtree_pk", $item_pk])->andReturn(
true);
304 $this->viewLicensePlugin->shouldReceive(
'updateLastItem')->withArgs([2, 2, $item_pk, $item_pk]);
306 $info =
new Info(200,
"Successfully set decision", InfoType::INFO);
308 $expectedResponse = (
new ResponseHelper())->withJson($info->getArray(), $info->getCode());
309 $reqBody = $this->streamFactory->createStream(json_encode(
312 $requestHeaders =
new Headers();
313 $requestHeaders->setHeader(
'Content-Type',
'application/json');
314 $request =
new Request(
"PUT",
new Uri(
"HTTP",
"localhost"),
315 $requestHeaders, [], [], $reqBody);
316 $actualResponse = $this->uploadTreeController->setClearingDecision($request,
new ResponseHelper(), [
'id' => $upload_pk,
'itemId' => $item_pk]);
318 $this->assertEquals($expectedResponse->getStatusCode(),
319 $actualResponse->getStatusCode());
334 "decisionType" => 40,
335 "globalDecision" =>
false,
337 $dummyDecisionTypes = array_map(
function ($i) {
341 $this->decisionTypes->shouldReceive(
'getMap')
342 ->andReturn($dummyDecisionTypes);
343 $this->uploadDao->shouldReceive(
"getUploadtreeTableName")->withArgs([$upload_pk])->andReturn(
"uploadtree");
344 $this->uploadDao->shouldReceive(
'isAccessible')
345 ->withArgs([$upload_pk, $this->groupId])->andReturn(
true);
346 $this->dbHelper->shouldReceive(
'doesIdExist')
347 ->withArgs([
"upload",
"upload_pk", $upload_pk])->andReturn(
true);
348 $this->dbHelper->shouldReceive(
'doesIdExist')
349 ->withArgs([
"uploadtree",
"uploadtree_pk", $item_pk])->andReturn(
true);
351 $this->viewLicensePlugin->shouldReceive(
'updateLastItem')->withArgs([2, 2, $item_pk, $item_pk]);
353 $reqBody = $this->streamFactory->createStream(json_encode(
356 $requestHeaders =
new Headers();
357 $requestHeaders->setHeader(
'Content-Type',
'application/json');
358 $request =
new Request(
"PUT",
new Uri(
"HTTP",
"localhost"),
359 $requestHeaders, [], [], $reqBody);
360 $this->expectException(HttpBadRequestException::class);
362 $this->uploadTreeController->setClearingDecision($request,
363 new ResponseHelper(), [
'id' => $upload_pk,
'itemId' => $item_pk]);
376 $itemTreeBounds1 =
new ItemTreeBounds($nextItemId,
'uploadtree_a', $uploadId, 1, 2);
377 $itemTreeBounds2 =
new ItemTreeBounds($prevItemId,
'uploadtree_a', $uploadId, 1, 2);
379 $item1 =
new Item($itemTreeBounds1, 1, 1, 1,
"fileName");
380 $item2 =
new Item($itemTreeBounds2, 1, 1, 1,
"fileName");
383 "prevItemId" => $prevItemId,
384 "nextItemId" => $nextItemId
386 $options = array(
'skipThese' =>
"",
'groupId' => $this->groupId);
388 $this->uploadDao->shouldReceive(
'isAccessible')
389 ->withArgs([$uploadId, $this->groupId])->andReturn(
true);
390 $this->dbHelper->shouldReceive(
'doesIdExist')
391 ->withArgs([
"upload",
"upload_pk", $uploadId])->andReturn(
true);
392 $this->uploadDao->shouldReceive(
'getUploadtreeTableName')->withArgs([$uploadId])->andReturn(
"uploadtree");
393 $this->dbHelper->shouldReceive(
'doesIdExist')
394 ->withArgs([
"uploadtree",
"uploadtree_pk", $itemId])->andReturn(
true);
396 $this->uploadDao->shouldReceive(
'getNextItem')->withArgs([$uploadId, $itemId, $options])->andReturn($item1);
397 $this->uploadDao->shouldReceive(
'getPreviousItem')->withArgs([$uploadId, $itemId, $options])->andReturn($item2);
398 $expectedResponse = (
new ResponseHelper())->withJson($result, 200);
399 $queryParams = [
'selection' =>
null];
400 $request = $this->getMockBuilder(ServerRequestInterface::class)
402 $request->expects($this->any())
403 ->method(
'getQueryParams')
404 ->willReturn($queryParams);
406 $actualResponse = $this->uploadTreeController->getNextPreviousItem($request,
new ResponseHelper(), [
'id' => $uploadId,
'itemId' => $itemId]);
407 $this->assertEquals($expectedResponse->getStatusCode(), $actualResponse->getStatusCode());
422 $itemTreeBounds1 =
new ItemTreeBounds($nextItemId,
'uploadtree_a', $uploadId, 1, 2);
423 $itemTreeBounds2 =
new ItemTreeBounds($prevItemId,
'uploadtree_a', $uploadId, 1, 2);
425 $item1 =
new Item($itemTreeBounds1, 1, 1, 1,
"fileName");
426 $item2 =
new Item($itemTreeBounds2, 1, 1, 1,
"fileName");
428 $options = array(
'skipThese' =>
"",
'groupId' => $this->groupId);
430 $this->uploadDao->shouldReceive(
'isAccessible')
431 ->withArgs([$uploadId, $this->groupId])->andReturn(
true);
432 $this->dbHelper->shouldReceive(
'doesIdExist')
433 ->withArgs([
"upload",
"upload_pk", $uploadId])->andReturn(
true);
434 $this->uploadDao->shouldReceive(
'getUploadtreeTableName')->withArgs([$uploadId])->andReturn(
"uploadtree");
435 $this->dbHelper->shouldReceive(
'doesIdExist')
436 ->withArgs([
"uploadtree",
"uploadtree_pk", $itemId])->andReturn(
true);
438 $this->uploadDao->shouldReceive(
'getNextItem')->withArgs([$uploadId, $itemId, $options])->andReturn($item1);
439 $this->uploadDao->shouldReceive(
'getPreviousItem')->withArgs([$uploadId, $itemId, $options])->andReturn($item2);
441 $queryParams = [
'selection' =>
"invalidSelection"];
442 $request = $this->getMockBuilder(ServerRequestInterface::class)
444 $request->expects($this->any())
445 ->method(
'getQueryParams')
446 ->willReturn($queryParams);
447 $this->expectException(HttpBadRequestException::class);
449 $this->uploadTreeController->getNextPreviousItem($request,
462 $itemTreeBounds =
new ItemTreeBounds($itemId,
'uploadtree', $uploadId, 1, 2);
470 "addedLicenses" => [],
471 "removedLicenses" => [],
474 $obj =
new BulkHistory(1, 1,
"test",
true,
true, [], []);
475 $updatedRes[] = $obj->getArray();
477 $this->uploadDao->shouldReceive(
'isAccessible')
478 ->withArgs([$uploadId, $this->groupId])->andReturn(
true);
479 $this->dbHelper->shouldReceive(
'doesIdExist')
480 ->withArgs([
"upload",
"upload_pk", $uploadId])->andReturn(
true);
482 $this->uploadDao->shouldReceive(
'getUploadtreeTableName')->withArgs([$uploadId])->andReturn(
"uploadtree");
483 $this->dbHelper->shouldReceive(
'doesIdExist')
484 ->withArgs([
"uploadtree",
"uploadtree_pk", $itemId])->andReturn(
true);
486 $this->uploadDao->shouldReceive(
"getItemTreeBounds")
487 ->withArgs([$itemId,
"uploadtree"])->andReturn($itemTreeBounds);
489 $this->clearingDao->shouldReceive(
"getBulkHistory")
490 ->withArgs([$itemTreeBounds, $this->groupId])->andReturn($res);
491 $expectedResponse = (
new ResponseHelper())->withJson($updatedRes, 200);
492 $actualResponse = $this->uploadTreeController->getBulkHistory(
null,
new ResponseHelper(), [
'id' => $uploadId,
'itemId' => $itemId]);
493 $this->assertEquals($expectedResponse->getStatusCode(), $actualResponse->getStatusCode());
506 $itemTreeBounds =
new ItemTreeBounds($itemId,
'uploadtree_a', $uploadId, 1, 2);
507 $fileClearings[] =
new ClearingDecision(1, 1, $itemId, 1, 1, 1, 3, 1, 1, [], 1, 1, 1);
516 $result[] = $obj->getArray();
518 $this->uploadDao->shouldReceive(
'isAccessible')
519 ->withArgs([$uploadId, $this->groupId])->andReturn(
true);
520 $this->dbHelper->shouldReceive(
'doesIdExist')
521 ->withArgs([
"upload",
"upload_pk", $uploadId])->andReturn(
true);
523 $this->uploadDao->shouldReceive(
'getUploadtreeTableName')->withArgs([$uploadId])->andReturn(
"uploadtree");
524 $this->dbHelper->shouldReceive(
'doesIdExist')
525 ->withArgs([
"uploadtree",
"uploadtree_pk", $itemId])->andReturn(
true);
527 $this->uploadDao->shouldReceive(
"getItemTreeBoundsFromUploadId")
528 ->withArgs([$itemId, $uploadId])->andReturn($itemTreeBounds);
529 $this->clearingDao->shouldReceive(
"getFileClearings")
530 ->withArgs([$itemTreeBounds, $this->groupId,
false,
true])->andReturn($fileClearings);
531 $this->decisionTypes->shouldReceive(
"getTypeName")
532 ->withArgs([$fileClearings[0]->getType()])->andReturn(
"test");
533 $this->decisionScopes->shouldReceive(
"getTypeName")->withArgs([$fileClearings[0]->getScope()])->andReturn(
"test");
534 $this->decisionTypes->shouldReceive(
"getConstantNameFromKey")
535 ->withArgs([$fileClearings[0]->getType()])->andReturn(
"TO_BE_DISCUSSED");
536 $expectedResponse = (
new ResponseHelper())->withJson($result, 200);
537 $actualResponse = $this->uploadTreeController->getClearingHistory(
null,
new ResponseHelper(), [
'id' => $uploadId,
'itemId' => $itemId]);
538 $this->assertEquals($expectedResponse->getStatusCode(), $actualResponse->getStatusCode());
558 "infoText" =>
"MIT: 'MIT License\n\nCopyright (c) <year> <copyright holders>'",
559 "htmlElement" =>
null
562 $highlight =
new Highlight($res[0][
"start"], $res[0][
"end"], $res[0][
"type"], $res[0][
"refStart"], $res[0][
"refEnd"], $res[0][
"infoText"]);
563 $itemTreeBounds =
new ItemTreeBounds($itemId,
'uploadtree', $uploadId, 1, 2);
565 $this->uploadDao->shouldReceive(
'isAccessible')
566 ->withArgs([$uploadId, $this->groupId])->andReturn(
true);
567 $this->dbHelper->shouldReceive(
'doesIdExist')
568 ->withArgs([
"upload",
"upload_pk", $uploadId])->andReturn(
true);
569 $this->uploadDao->shouldReceive(
"getUploadtreeTableName")->withArgs([$uploadId])->andReturn(
"uploadtree");
570 $this->dbHelper->shouldReceive(
'doesIdExist')
571 ->withArgs([
"uploadtree",
"uploadtree_pk", $itemId])->andReturn(
true);
572 $this->uploadDao->shouldReceive(
"getItemTreeBounds")->withArgs([$itemId,
"uploadtree"])->andReturn($itemTreeBounds);
573 $this->viewLicensePlugin->shouldReceive(
'getSelectedHighlighting')->withArgs([$itemTreeBounds,
null,
null,
null,
null, $uploadId])->andReturn([$highlight]);
576 $queryParams = [
'clearingId' =>
null,
'agentId' =>
null,
'highlightId' =>
null,
'licenseId' =>
null];
577 $request = $this->getMockBuilder(ServerRequestInterface::class)
579 $request->expects($this->any())
580 ->method(
'getQueryParams')
581 ->willReturn($queryParams);
583 $actualResponse = $this->uploadTreeController->getHighlightEntries($request,
new ResponseHelper(), [
'id' => $uploadId,
'itemId' => $itemId]);
584 $this->assertEquals($expectedResponse->getStatusCode(), $actualResponse->getStatusCode());
601 $itemTreeBounds =
new ItemTreeBounds($itemId,
'uploadtree_a', $uploadId, 0, 1);
602 $addedClearingResults = [];
605 'name' =>
'Imported decision',
606 'clearingId' =>
null,
608 'highlightId' =>
null,
613 $license =
new License($licenseId,
"MIT",
"MIT License",
"text",
"url", [],
615 $licenseDecision =
new LicenseDecision($licenseId,
"MIT",
"MIT License",
'text',
"url", array($result),
616 '',
'',
false, [],
null,
false);
618 $licenseRef =
new LicenseRef($licenseId,
"MIT",
"MIT LICENSE",
"spx");
619 $clearingEvent =
new ClearingEvent(1, $itemId, 12, $this->userId, $this->groupId, 4,
new ClearingLicense($licenseRef,
false,
"",
"",
"",
""));
621 $addedClearingResults[$licenseId] = $licenseDecisionResult;
623 $this->uploadDao->shouldReceive(
'isAccessible')
624 ->withArgs([$uploadId, $this->groupId])->andReturn(
true);
625 $this->dbHelper->shouldReceive(
'doesIdExist')
626 ->withArgs([
"upload",
"upload_pk", $uploadId])->andReturn(
true);
628 $this->uploadDao->shouldReceive(
'getUploadtreeTableName')->withArgs([$uploadId])->andReturn(
"uploadtree");
629 $this->dbHelper->shouldReceive(
'doesIdExist')
630 ->withArgs([
"uploadtree",
"uploadtree_pk", $itemId])->andReturn(
true);
632 $this->uploadDao->shouldReceive(
"getItemTreeBoundsFromUploadId")->withArgs([$itemId, $uploadId])->andReturn($itemTreeBounds);
633 $this->itemTreeBoundsMock->shouldReceive(
"containsFiles")->andReturn(
false);
634 $this->clearingDao->shouldReceive(
'getMainLicenseIds')->andReturn([]);
635 $this->clearingEventTypes->shouldReceive(
'getTypeName')->withArgs([$clearingEvent->getEventType()])->andReturn($result[
'name']);
636 $this->highlightDao->shouldReceive(
'getHighlightRegion')->withArgs([1])->andReturn([
""]);
637 $this->clearingDecisionEventProcessor->shouldReceive(
"getCurrentClearings")->withArgs([$itemTreeBounds, $this->groupId, LicenseMap::CONCLUSION])->andReturn([$addedClearingResults, []]);
638 $this->licenseDao->shouldReceive(
'getLicenseObligations')->withArgs([[$licenseId],
false])->andReturn([]);
639 $this->licenseDao->shouldReceive(
'getLicenseObligations')->withArgs([[$licenseId],
true])->andReturn([]);
640 $this->licenseDao->shouldReceive(
'getLicenseById')->withArgs([$licenseId])->andReturn($license);
641 $licenses[] = $licenseDecision->getArray();
643 $expectedResponse = (
new ResponseHelper())->withJson($licenses, 200);
644 $actualResponse = $this->uploadTreeController->getLicenseDecisions(
null,
new ResponseHelper(), [
'id' => $uploadId,
'itemId' => $itemId]);
645 $this->assertEquals($expectedResponse->getStatusCode(), $actualResponse->getStatusCode());
660 $license =
new License($licenseId,
"MIT",
"MIT License",
"risk",
"texts", [],
662 $itemTreeBounds =
new ItemTreeBounds($itemId,
'uploadtree_a', $uploadId, 1, 2);
665 "shortName" =>
"MIT",
670 $existingLicenses = array([
'DT_RowId' =>
"$itemId,400",
'DT_RowClass' =>
'removed']);
672 $this->uploadDao->shouldReceive(
'isAccessible')
673 ->withArgs([$uploadId, $this->groupId])->andReturn(
true);
674 $this->dbHelper->shouldReceive(
'doesIdExist')
675 ->withArgs([
"upload",
"upload_pk", $uploadId])->andReturn(
true);
676 $this->uploadDao->shouldReceive(
"getUploadtreeTableName")->withArgs([$uploadId])->andReturn(
"uploadtree");
677 $this->dbHelper->shouldReceive(
'doesIdExist')
678 ->withArgs([
"uploadtree",
"uploadtree_pk", $itemId])->andReturn(
true);
679 $this->uploadDao->shouldReceive(
'getItemTreeBoundsFromUploadId')->withArgs([$itemId, $uploadId])->andReturn($itemTreeBounds);
680 $this->concludeLicensePlugin->shouldReceive(
'getCurrentSelectedLicensesTableData')->withArgs([$itemTreeBounds, $this->groupId,
true])->andReturn($existingLicenses);
681 $this->licenseDao->shouldReceive(
'getLicenseByShortName')
682 ->withArgs([$shortName, $this->groupId])->andReturn($license);
683 $this->clearingDao->shouldReceive(
'insertClearingEvent')
684 ->withArgs([$itemId, $this->userId, $this->groupId, $licenseId,
false])->andReturn(
null);
686 $info =
new Info(200,
'Successfully added MIT as a new license decision.', InfoType::INFO);
688 'success' => [$info->getArray()],
692 $reqBody = $this->streamFactory->createStream(json_encode(
695 $requestHeaders =
new Headers();
696 $requestHeaders->setHeader(
'Content-Type',
'application/json');
697 $request =
new Request(
"PUT",
new Uri(
"HTTP",
"localhost"),
698 $requestHeaders, [], [], $reqBody);
699 $actualResponse = $this->uploadTreeController->handleAddEditAndDeleteLicenseDecision($request,
new ResponseHelper(), [
'id' => $uploadId,
'itemId' => $itemId]);
701 $this->assertEquals($expectedResponse->getStatusCode(),
702 $actualResponse->getStatusCode());
718 $license =
new License($licenseId,
"MIT",
"MIT License",
"risk",
"texts", [],
720 $itemTreeBounds =
new ItemTreeBounds($itemId,
'uploadtree_a', $uploadId, 1, 2);
723 "shortName" =>
"MIT",
725 "text" =>
"Updated license text",
729 $existingLicenses = array([
'DT_RowId' =>
"$itemId,$licenseId",
'DT_RowClass' =>
'removed']);
731 $this->uploadDao->shouldReceive(
'isAccessible')
732 ->withArgs([$uploadId, $this->groupId])->andReturn(
true);
733 $this->dbHelper->shouldReceive(
'doesIdExist')
734 ->withArgs([
"upload",
"upload_pk", $uploadId])->andReturn(
true);
735 $this->uploadDao->shouldReceive(
"getUploadtreeTableName")->withArgs([$uploadId])->andReturn(
"uploadtree");
736 $this->dbHelper->shouldReceive(
'doesIdExist')
737 ->withArgs([
"uploadtree",
"uploadtree_pk", $itemId])->andReturn(
true);
738 $this->uploadDao->shouldReceive(
'getItemTreeBoundsFromUploadId')->withArgs([$itemId, $uploadId])->andReturn($itemTreeBounds);
739 $this->concludeLicensePlugin->shouldReceive(
'getCurrentSelectedLicensesTableData')->withArgs([$itemTreeBounds, $this->groupId,
true])->andReturn($existingLicenses);
740 $this->licenseDao->shouldReceive(
'getLicenseByShortName')
741 ->withArgs([$shortName, $this->groupId])->andReturn($license);
742 $this->clearingDao->shouldReceive(
'updateClearingEvent')
743 ->withArgs([$itemId, $this->userId, $this->groupId, $licenseId,
'reportinfo',
"Updated license text"])->andReturn(
null);
745 $info =
new Info(200,
"Successfully updated MIT's license reportinfo", InfoType::INFO);
747 'success' => [$info->getArray()],
751 $reqBody = $this->streamFactory->createStream(json_encode(
754 $requestHeaders =
new Headers();
755 $requestHeaders->setHeader(
'Content-Type',
'application/json');
756 $request =
new Request(
"PUT",
new Uri(
"HTTP",
"localhost"),
757 $requestHeaders, [], [], $reqBody);
758 $actualResponse = $this->uploadTreeController->handleAddEditAndDeleteLicenseDecision($request,
new ResponseHelper(), [
'id' => $uploadId,
'itemId' => $itemId]);
760 $this->assertEquals($expectedResponse->getStatusCode(),
761 $actualResponse->getStatusCode());
777 $license =
new License($licenseId,
"MIT",
"MIT License",
"risk",
"texts", [],
779 $itemTreeBounds =
new ItemTreeBounds($itemId,
'uploadtree_a', $uploadId, 1, 2);
782 "shortName" =>
"MIT",
784 "text" =>
"Updated license text",
788 $existingLicenses = array([
'DT_RowId' =>
"$itemId,$licenseId",
'DT_RowClass' =>
'removed']);
790 $this->uploadDao->shouldReceive(
'isAccessible')
791 ->withArgs([$uploadId, $this->groupId])->andReturn(
true);
792 $this->dbHelper->shouldReceive(
'doesIdExist')
793 ->withArgs([
"upload",
"upload_pk", $uploadId])->andReturn(
true);
794 $this->uploadDao->shouldReceive(
"getUploadtreeTableName")->withArgs([$uploadId])->andReturn(
"uploadtree");
795 $this->dbHelper->shouldReceive(
'doesIdExist')
796 ->withArgs([
"uploadtree",
"uploadtree_pk", $itemId])->andReturn(
true);
797 $this->uploadDao->shouldReceive(
'getItemTreeBoundsFromUploadId')->withArgs([$itemId, $uploadId])->andReturn($itemTreeBounds);
798 $this->concludeLicensePlugin->shouldReceive(
'getCurrentSelectedLicensesTableData')->withArgs([$itemTreeBounds, $this->groupId,
true])->andReturn($existingLicenses);
799 $this->licenseDao->shouldReceive(
'getLicenseByShortName')
800 ->withArgs([$shortName, $this->groupId])->andReturn($license);
801 $this->clearingDao->shouldReceive(
'insertClearingEvent')
802 ->withArgs([$itemId, $this->userId, $this->groupId, $licenseId,
true])->andReturn(
null);
804 $info =
new Info(200,
'Successfully deleted MIT from license decision list.', InfoType::INFO);
806 'success' => [$info->getArray()],
810 $reqBody = $this->streamFactory->createStream(json_encode(
813 $requestHeaders =
new Headers();
814 $requestHeaders->setHeader(
'Content-Type',
'application/json');
815 $request =
new Request(
"PUT",
new Uri(
"HTTP",
"localhost"),
816 $requestHeaders, [], [], $reqBody);
817 $actualResponse = $this->uploadTreeController->handleAddEditAndDeleteLicenseDecision($request,
new ResponseHelper(), [
'id' => $uploadId,
'itemId' => $itemId]);
819 $this->assertEquals($expectedResponse->getStatusCode(),
820 $actualResponse->getStatusCode());
833 $licenseShortName =
"MIT";
834 $existingLicense =
new License( $licenseId, $licenseShortName,
"FULL NAME",
"text",
"url", [],
"1");
838 'licenseShortName' => $licenseShortName,
840 'acknowledgement' =>
'',
842 'licenseAction' =>
'ADD'
845 'refText' =>
'Copyright (c) 2011-2023 The Bootstrap Authors',
846 'bulkScope' =>
'folder',
847 'forceDecision' => 0,
849 'delimiters' =>
'DEFAULT',
850 'scanOnlyFindings' => 0
853 $res =
new JsonResponse(array(
"jqid" => $jobId));
858 $this->uploadDao->shouldReceive(
'isAccessible')
859 ->withArgs([$uploadId, $this->groupId])->andReturn(
true);
860 $this->dbHelper->shouldReceive(
'doesIdExist')
861 ->withArgs([
"upload",
"upload_pk", $uploadId])->andReturn(
true);
862 $this->uploadDao->shouldReceive(
'getUploadtreeTableName')->withArgs([$uploadId])->andReturn(
"uploadtree");
863 $this->dbHelper->shouldReceive(
'doesIdExist')
864 ->withArgs([
"uploadtree",
"uploadtree_pk", $itemId])->andReturn(
true);
865 $this->dbHelper->shouldReceive(
'doesIdExist')
866 ->withArgs([
"license_ref",
"rf_pk", $licenseId])->andReturn(
true);
867 $this->licenseDao->shouldReceive(
'getLicenseByShortName')
868 ->withArgs([$licenseShortName, $this->groupId])
869 ->andReturn($existingLicense);
870 $this->changeLicenseBulk->shouldReceive(
'handle')
871 ->withArgs([M::any()])
874 $info =
new Info(201, json_decode($res->getContent(),
true)[
"jqid"], InfoType::INFO);
876 $reqBody = $this->streamFactory->createStream(json_encode(
880 $requestHeaders =
new Headers();
881 $requestHeaders->setHeader(
'Content-Type',
'application/json');
882 $request =
new Request(
"POST",
new Uri(
"HTTP",
"localhost"),
883 $requestHeaders, [], [], $reqBody);
885 $expectedResponse = (
new ResponseHelper())->withJson($info->getArray(), $info->getCode());
886 $actualResponse = $this->uploadTreeController->scheduleBulkScan($request,
new ResponseHelper(), [
'id' => $uploadId,
'itemId' => $itemId]);
888 $this->assertEquals($expectedResponse->getStatusCode(),
889 $actualResponse->getStatusCode());
Contains the constants and helpers for authentication of user.
Utility functions to process ClearingDecision.
Wrapper class for license map.
Controller for UploadTree model.
Provides helper methods to access database for REST api.
Override Slim response for withJson function.
Provides various DAO helper functions for REST api.
Different type of infos provided by REST.
Info model to contain general error and return values.
testHandleAddEditAndDeleteLicenseDecision_Delete()
testGetNextPreviousItem()
testGetLicenseDecisions()
testSetClearingDecisionReturnsError()
$clearingDecisionEventProcessor
testHandleAddEditAndDeleteLicenseDecision_Add()
getResponseJson($response)
testGetHighlightEntries()
testGetNextPreviousItem_isSelectionValid()
setUp()
Setup test objects.
testSetClearingDecisionReturnsOk()
testHandleAddEditAndDeleteLicenseDecision_Edit()
RepPathItem($Item, $Repo="files")
Given an uploadtree_pk, retrieve the pfile path.
fo_dbManager * dbManager
fo_dbManager object