Beispiel #1
0
 public function testJobFactory()
 {
     $storageApiClient = new Client(['token' => SYRUP_SAPI_TEST_TOKEN, 'userAgent' => SYRUP_APP_NAME, 'url' => SYRUP_SAPI_TEST_URL]);
     /** @var ObjectEncryptor $encryptor */
     $encryptor = self::$kernel->getContainer()->get('syrup.object_encryptor');
     /** @var StorageApiService $storageApiService */
     $storageApiService = self::$kernel->getContainer()->get('syrup.storage_api');
     $storageApiService->setClient($storageApiClient);
     $jobFactory = new JobFactory(SYRUP_APP_NAME, $encryptor, $storageApiService);
     $command = uniqid();
     $param = uniqid();
     $lock = uniqid();
     $tokenData = $storageApiClient->verifyToken();
     $job = $jobFactory->create($command, ['param' => $param], $lock);
     $this->assertEquals($command, $job->getCommand());
     $this->assertEquals($lock, $job->getLockName());
     $this->assertEquals(['param' => $param], $job->getParams());
     $this->assertArrayHasKey('id', $job->getProject());
     $this->assertEquals($tokenData['owner']['id'], $job->getProject()['id']);
     $this->assertArrayHasKey('name', $job->getProject());
     $this->assertEquals($tokenData['owner']['name'], $job->getProject()['name']);
     $this->assertArrayHasKey('id', $job->getToken());
     $this->assertEquals($tokenData['id'], $job->getToken()['id']);
     $this->assertArrayHasKey('description', $job->getToken());
     $this->assertEquals($tokenData['description'], $job->getToken()['description']);
     $this->assertArrayHasKey('token', $job->getToken());
     $this->assertEquals($tokenData['token'], $encryptor->decrypt($job->getToken()['token']));
 }
Beispiel #2
0
 protected function setUp()
 {
     $this->bootKernel();
     $this->application = new Application(self::$kernel);
     $this->storageApiToken = self::$kernel->getContainer()->getParameter('storage_api.test.token');
     $this->storageApiClient = new StorageApiClient(['token' => $this->storageApiToken, 'url' => self::$kernel->getContainer()->getParameter('storage_api.test.url')]);
     $this->jobMapper = self::$kernel->getContainer()->get('syrup.elasticsearch.current_component_job_mapper');
     $this->jobFactory = self::$kernel->getContainer()->get('syrup.job_factory');
     $this->jobFactory->setStorageApiClient($this->storageApiClient);
 }
Beispiel #3
0
 public function testSanitizeResult()
 {
     $storageApiService = self::$kernel->getContainer()->get('syrup.storage_api');
     $storageApiService->setClient(new Client(['token' => SYRUP_SAPI_TEST_TOKEN, 'userAgent' => SYRUP_APP_NAME, 'url' => SYRUP_SAPI_TEST_URL]));
     /** @var ObjectEncryptor $objectEncryptor */
     $objectEncryptor = self::$kernel->getContainer()->get('syrup.object_encryptor');
     $jobFactory = new JobFactory(SYRUP_APP_NAME, $objectEncryptor, $storageApiService);
     $command = uniqid();
     $param = ["key1" => "value1", "#key2" => "value2"];
     $lock = uniqid();
     $job = $jobFactory->create($command, $objectEncryptor->encrypt($param), $lock);
     $job->setResult(["message" => "SQLSTATE[XX000]: " . chr(0x80) . " abcd"]);
     $this->assertEquals(["message" => "SQLSTATE[XX000]: ? abcd"], $job->getResult());
 }
Beispiel #4
0
 public function testUpdateJob()
 {
     $job = self::$jobFactory->create(uniqid());
     $id = self::$jobMapper->create($job);
     $job = self::$jobMapper->get($id);
     $job->setStatus(Job::STATUS_CANCELLED);
     self::$jobMapper->update($job);
     $job = self::$jobMapper->get($id);
     $this->assertEquals($job->getStatus(), Job::STATUS_CANCELLED);
     $job->setStatus(Job::STATUS_WARNING);
     self::$jobMapper->update($job);
     $job = self::$jobMapper->get($id);
     $this->assertEquals($job->getStatus(), Job::STATUS_WARNING);
 }
Beispiel #5
0
 /**
  * @covers \Keboola\Syrup\Job\Metadata\Job::getParams
  */
 public function testGetParams()
 {
     $storageApiClient = new Client(['token' => SYRUP_SAPI_TEST_TOKEN, 'userAgent' => SYRUP_APP_NAME]);
     $key = md5(uniqid());
     $encryptor = new Encryptor($key);
     /** @var ObjectEncryptor $configEncryptor */
     $configEncryptor = self::$kernel->getContainer()->get('syrup.object_encryptor');
     $jobFactory = new JobFactory(SYRUP_APP_NAME, $encryptor, $configEncryptor);
     $jobFactory->setStorageApiClient($storageApiClient);
     $command = uniqid();
     $param = ["key1" => "value1", "#key2" => "value2"];
     $lock = uniqid();
     $job = $jobFactory->create($command, $configEncryptor->encrypt($param), $lock);
     $job->setEncrypted(true);
     $this->assertEquals($command, $job->getCommand());
     $this->assertEquals($lock, $job->getLockName());
     $this->assertEquals("KBC::Encrypted==", substr($job->getData()["params"]["#key2"], 0, 16));
     $this->assertEquals($param, $job->getParams());
 }