cloud-8.x-2.0-beta1/modules/cloud_service_providers/k8s/tests/src/Functional/K8sCronJobTest.php
modules/cloud_service_providers/k8s/tests/src/Functional/K8sCronJobTest.php
<?php
namespace Drupal\Tests\k8s\Functional;
/**
* Tests K8s cron job.
*
* @group k8s
*/
class K8sCronJobTest extends K8sTestCase {
const K8S_CRON_JOB_REPEAT_COUNT = 3;
/**
* {@inheritdoc}
*/
protected function getPermissions() {
$namespaces = $this->createNamespacesRandomTestFormData();
$this->createNamespaceTestEntity($namespaces[0]);
$this->namespace = $namespaces[0]['name'];
return [
'list k8s cron job',
'view k8s cron job',
'edit k8s cron job',
'add k8s cron job',
'delete k8s cron job',
'view k8s namespace ' . $this->namespace,
];
}
/**
* Tests CRUD for Cron Job.
*/
public function testCronJob() {
$cloud_context = $this->cloudContext;
// List Cron Job for K8s.
$this->drupalGet("/clouds/k8s/$cloud_context/cron_job");
$this->assertResponse(200);
// Add a new Cron Job.
$add = $this->createCronJobTestFormData(self::K8S_CRON_JOB_REPEAT_COUNT, $this->namespace);
for ($i = 0; $i < self::K8S_CRON_JOB_REPEAT_COUNT; $i++) {
$this->reloadMockData();
$this->addCronJobMockData($add[$i]);
$num = $i + 1;
$this->drupalPostForm(
"/clouds/k8s/$cloud_context/cron_job/add",
$add[$i]['post_data'],
t('Save')
);
$this->assertResponse(200);
$this->assertText(t('The Kubernetes Cron Job "@name" has been created.', ['@name' => $add[$i]['name']]));
// Make sure listing.
$this->drupalGet("/clouds/k8s/$cloud_context/cron_job");
$this->assertResponse(200);
$this->assertText($add[$i]['name']);
}
// Edit a Cron Job.
$edit = $this->createCronJobTestFormData(self::K8S_CRON_JOB_REPEAT_COUNT, $this->namespace);
for ($i = 0; $i < self::K8S_CRON_JOB_REPEAT_COUNT; $i++) {
$num = $i + 1;
$this->updateCronJobMockData($edit[$i]);
unset($edit[$i]['post_data']['namespace']);
$this->drupalPostForm(
"/clouds/k8s/$cloud_context/cron_job/$num/edit",
$edit[$i]['post_data'],
t('Save')
);
$this->assertResponse(200);
$this->assertText(t(
'The Kubernetes Cron Job "@name" has been saved.',
['@name' => $add[$i]['name']]
));
}
// Delete Cron Job.
for ($i = 0; $i < self::K8S_CRON_JOB_REPEAT_COUNT; $i++) {
$num = $i + 1;
$this->deleteCronJobMockData($add[$i]);
$this->drupalPostForm(
"/clouds/k8s/$cloud_context/cron_job/$num/delete",
[],
t('Delete')
);
$this->assertResponse(200);
$this->assertText(t(
'The Kubernetes Cron Job "@name" has been deleted.',
['@name' => $add[$i]['name']]
));
// Make sure listing.
$this->drupalGet("/clouds/k8s/$cloud_context/cron_job");
$this->assertResponse(200);
$this->assertNoText($add[$i]['name']);
}
}
/**
* Tests deleting cron jobs with bulk operation.
*/
public function testCronJobBulk() {
$cloud_context = $this->cloudContext;
for ($i = 0; $i < self::K8S_CRON_JOB_REPEAT_COUNT; $i++) {
// Create Cron Jobs.
$cron_jobs = $this->createCronJobsRandomTestFormData($this->namespace);
$entities = [];
foreach ($cron_jobs as $cron_job) {
$entities[] = $this->createCronJobTestEntity($cron_job);
}
$this->deleteCronJobMockData($cron_jobs[0]);
$this->doTestEntityBulk('cron_job', $entities);
}
}
}
