Changeset View
Changeset View
Standalone View
Standalone View
src/tests/Feature/Jobs/Resource/CreateTest.php
Show All 23 Lines | public function tearDown(): void | ||||
parent::tearDown(); | parent::tearDown(); | ||||
} | } | ||||
/** | /** | ||||
* Test job handle | * Test job handle | ||||
* | * | ||||
* @group ldap | * @group ldap | ||||
* @group imap | |||||
*/ | */ | ||||
public function testHandle(): void | public function testHandle(): void | ||||
{ | { | ||||
Queue::fake(); | Queue::fake(); | ||||
// Test unknown resource | // Test unknown resource | ||||
$this->expectException(\Exception::class); | $this->expectException(\Exception::class); | ||||
$job = new \App\Jobs\Resource\CreateJob(123); | $job = new \App\Jobs\Resource\CreateJob(123); | ||||
$job->handle(); | $job->handle(); | ||||
$this->assertTrue($job->isReleased()); | $this->assertTrue($job->isReleased()); | ||||
$this->assertFalse($job->hasFailed()); | $this->assertFalse($job->hasFailed()); | ||||
$resource = $this->getTestResource('resource-test@' . \config('app.domain')); | $resource = $this->getTestResource( | ||||
'resource-test@' . \config('app.domain'), | |||||
['status' => Resource::STATUS_NEW] | |||||
); | |||||
$this->assertFalse($resource->isLdapReady()); | $this->assertFalse($resource->isLdapReady()); | ||||
$this->assertFalse($resource->isImapReady()); | |||||
$this->assertFalse($resource->isActive()); | |||||
// Test resource creation | // Test resource creation | ||||
$job = new \App\Jobs\Resource\CreateJob($resource->id); | $job = new \App\Jobs\Resource\CreateJob($resource->id); | ||||
$job->handle(); | $job->handle(); | ||||
$this->assertTrue($resource->fresh()->isLdapReady()); | $resource->refresh(); | ||||
$this->assertFalse($job->hasFailed()); | $this->assertFalse($job->hasFailed()); | ||||
$this->assertTrue($resource->isLdapReady()); | |||||
$this->assertTrue($resource->isImapReady()); | |||||
$this->assertTrue($resource->isActive()); | |||||
// Test job failures | // Test job failures | ||||
$job = new \App\Jobs\Resource\CreateJob($resource->id); | |||||
$job->handle(); | |||||
$this->assertTrue($job->hasFailed()); | |||||
$this->assertSame("Resource {$resource->id} is already marked as ldap-ready.", $job->failureMessage); | |||||
$resource->status |= Resource::STATUS_DELETED; | $resource->status |= Resource::STATUS_DELETED; | ||||
$resource->save(); | $resource->save(); | ||||
$job = new \App\Jobs\Resource\CreateJob($resource->id); | $job = new \App\Jobs\Resource\CreateJob($resource->id); | ||||
$job->handle(); | $job->handle(); | ||||
$this->assertTrue($job->hasFailed()); | $this->assertTrue($job->hasFailed()); | ||||
$this->assertSame("Resource {$resource->id} is marked as deleted.", $job->failureMessage); | $this->assertSame("Resource {$resource->id} is marked as deleted.", $job->failureMessage); | ||||
$resource->status ^= Resource::STATUS_DELETED; | $resource->status ^= Resource::STATUS_DELETED; | ||||
$resource->save(); | $resource->save(); | ||||
$resource->delete(); | $resource->delete(); | ||||
$job = new \App\Jobs\Resource\CreateJob($resource->id); | $job = new \App\Jobs\Resource\CreateJob($resource->id); | ||||
$job->handle(); | $job->handle(); | ||||
$this->assertTrue($job->hasFailed()); | $this->assertTrue($job->hasFailed()); | ||||
$this->assertSame("Resource {$resource->id} is actually deleted.", $job->failureMessage); | $this->assertSame("Resource {$resource->id} is actually deleted.", $job->failureMessage); | ||||
// TODO: Test failures on domain sanity checks | // TODO: Test failures on domain sanity checks | ||||
// TODO: Test partial execution, i.e. only IMAP or only LDAP | |||||
} | } | ||||
} | } |