23 use Symfony\Component\HttpFoundation\Request;
30 class ScanOptionsTest
extends \PHPUnit\Framework\TestCase
54 public function setUp() : void
57 $container = M::mock(
'ContainerBuilder');
58 $this->agentAdderMock = M::mock(
'overload:\AgentAdder');
59 $this->userDao = M::mock(UserDao::class);
60 $container->shouldReceive(
'get')->withArgs([
"dao.user"])
61 ->andReturn($this->userDao);
62 $container->shouldReceive(
'get')->andReturn(
null);
64 self::$functions = M::mock(\stdClass::class);
65 self::$functions->shouldReceive(
'FolderListUploads_perm')
71 self::$functions->shouldReceive(
'register_plugin')
72 ->with(\Hamcrest\Matchers::identicalTo(
73 new ScanOptions(
null,
null,
null,
null)));
83 private function prepareRequest($request, $reuserOpts, $deciderOpts)
85 if (!empty($reuserOpts)) {
86 $reuserSelector = $reuserOpts[
'upload'] .
"," . $reuserOpts[
'group'];
87 $request->request->set(
'uploadToReuse', $reuserSelector);
88 if (key_exists(
'rules', $reuserOpts)) {
89 $request->request->set(
'reuseMode', $reuserOpts[
'rules']);
92 if (!empty($deciderOpts)) {
93 $request->request->set(
'deciderRules', $deciderOpts);
94 if (in_array(
'nomosInMonk', $deciderOpts)) {
95 $request->request->set(
'Check_agent_nomos', 1);
113 $groupName =
"fossy";
114 $agentsToAdd = [
'agent_nomos',
'agent_ojo',
'agent_monk'];
116 'upload' => $reuseUploadId,
125 $_SERVER[
'REQUEST_URI'] =
"/api/v1/";
127 $mockApiVersion = $this->createMock(ApiVersion::class);
128 $mockApiVersion->method(
"getVersionFromUri")->willReturn(ApiVersion::V1);
130 $request =
new Request();
131 $request = $this->
prepareRequest($request, $reuserOpts, $deciderOpts);
133 $analysis =
new Analysis();
134 $analysis->setUsingString(
"nomos,ojo,monk");
136 $reuse =
new Reuser($reuseUploadId, $groupName);
138 $decider =
new Decider();
139 $decider->setOjoDecider(
true);
140 $decider->setNomosMonk(
true);
141 $decider->setConcludeLicenseType(
"Permissive");
143 $scancode =
new Scancode();
145 $scanOption =
new ScanOptions($analysis, $reuse, $decider, $scancode);
147 $this->userDao->shouldReceive(
'getGroupIdByName')
148 ->withArgs([$groupName])->andReturn($groupId);
149 $this->agentAdderMock->shouldReceive(
'scheduleAgents')
153 $scanOption->scheduleAgents($folderId, $uploadId);
156 public function testScheduleAgentsApiVersionV2()
162 $groupName =
"fossy";
163 $agentsToAdd = [
'agent_nomos',
'agent_ojo',
'agent_monk'];
165 'upload' => $reuseUploadId,
174 $_SERVER[
'REQUEST_URI'] =
"/api/v2/";
176 $mockApiVersion = $this->createMock(ApiVersion::class);
177 $mockApiVersion->method(
"getVersionFromUri")->willReturn(ApiVersion::V2);
179 $request =
new Request();
180 $request = $this->
prepareRequest($request, $reuserOpts, $deciderOpts);
182 $analysis =
new Analysis();
183 $analysis->setUsingString(
"nomos,ojo,monk");
185 $reuse =
new Reuser($reuseUploadId, $groupName);
187 $decider =
new Decider();
188 $decider->setOjoDecider(
true);
189 $decider->setNomosMonk(
true);
190 $decider->setConcludeLicenseType(
"Permissive");
192 $scancode =
new Scancode();
194 $scanOption =
new ScanOptions($analysis, $reuse, $decider, $scancode);
196 $this->userDao->shouldReceive(
'getGroupIdByName')
197 ->withArgs([$groupName])->andReturn($groupId);
198 $this->agentAdderMock->shouldReceive(
'scheduleAgents')
202 $scanOption->scheduleAgents($folderId, $uploadId);
207 namespace Fossology\UI\Api\Models
209 function register_plugin($obj)
211 return \Fossology\Ui\Api\Test\Models\ScanOptionsTest::$functions
212 ->register_plugin($obj);
217 return \Fossology\Ui\Api\Test\Models\ScanOptionsTest::$functions
218 ->FolderListUploads_perm($parentFolder, $perm);
Contains the constants and helpers for authentication of user.
Model to hold analysis settings.
Model to hold info required by Reuser agent.
Model to hold add settings for new scan.
testScheduleAgentsApiVersionV1()
setUp()
Setup test objects.
prepareRequest($request, $reuserOpts, $deciderOpts)
FolderListUploads_perm($ParentFolder, $perm)
Returns an array of uploads in a folder.