Skip to content
This repository was archived by the owner on Jun 4, 2024. It is now read-only.

Commit 1171bd9

Browse files
committed
Tests
1 parent f8fa547 commit 1171bd9

File tree

3 files changed

+119
-4
lines changed

3 files changed

+119
-4
lines changed

src/ResolvesPointers.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
namespace SimpleSoftwareIO\SqsDisk;
44

55
use Illuminate\Support\Arr;
6-
use Illuminate\Container\Container;
76
use Illuminate\Filesystem\FilesystemAdapter;
87

98
trait ResolvesPointers
@@ -25,6 +24,6 @@ protected function resolvePointer(): ?string
2524
*/
2625
protected function resolveDisk(): FilesystemAdapter
2726
{
28-
return Container::getInstance()->make('filesystem')->disk(Arr::get($this->diskOptions, 'disk'));
27+
return $this->container->make('filesystem')->disk(Arr::get($this->diskOptions, 'disk'));
2928
}
3029
}

src/SqsDiskServiceProvider.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
namespace SimpleSoftwareIO\SqsDisk;
44

5-
use Illuminate\Container\Container;
65
use Illuminate\Support\ServiceProvider;
76

87
class SqsDiskServiceProvider extends ServiceProvider
@@ -12,7 +11,7 @@ class SqsDiskServiceProvider extends ServiceProvider
1211
*/
1312
public function register()
1413
{
15-
$manager = Container::getInstance()->make('queue');
14+
$manager = $this->app->make('queue');
1615
$manager->addConnector('sqs-disk', fn () => new SqsDiskConnector());
1716
}
1817
}

tests/SqsDiskJobTest.php

Lines changed: 117 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,136 @@
22

33
namespace SimpleSoftwareIO\Tests\SqsDisk;
44

5+
use Mockery;
6+
use Aws\Sqs\SqsClient;
57
use PHPUnit\Framework\TestCase;
8+
use SimpleSoftwareIO\SqsDisk\SqsDiskJob;
9+
use Illuminate\Filesystem\FilesystemAdapter;
10+
use Mockery\Adapter\Phpunit\MockeryPHPUnitIntegration;
611

712
class SqsDiskJobTest extends TestCase
813
{
14+
use MockeryPHPUnitIntegration;
15+
16+
public function setUp(): void
17+
{
18+
$this->mockedPayload = json_encode(['pointer' => 'prefix/e3cd03ee-59a3-4ad8-b0aa-ee2e3808ac81.json']);
19+
$this->mockedMessageId = 'e3cd03ee-59a3-4ad8-b0aa-ee2e3808ac81';
20+
$this->mockedReceiptHandle = '0NNAq8PwvXuWv5gMtS9DJ8qEdyiUwbAjpp45w2m6M4SJ1Y+PxCh7R930NRB8ylSacEmoSnW18bgd4nK\/O6ctE+VFVul4eD23mA07vVoSnPI4F\/voI1eNCp6Iax0ktGmhlNVzBwaZHEr91BRtqTRM3QKd2ASF8u+IQaSwyl\/DGK+P1+dqUOodvOVtExJwdyDLy1glZVgm85Yw9Jf5yZEEErqRwzYz\/qSigdvW4sm2l7e4phRol\/+IjMtovOyH\/ukueYdlVbQ4OshQLENhUKe7RNN5i6bE\/e5x9bnPhfj2gbM';
21+
22+
$this->mockedJobData = [
23+
'Body' => $this->mockedPayload,
24+
'MD5OfBody' => md5($this->mockedPayload),
25+
'ReceiptHandle' => $this->mockedReceiptHandle,
26+
'MessageId' => $this->mockedMessageId,
27+
'Attributes' => ['ApproximateReceiveCount' => 1],
28+
];
29+
30+
$this->mockedSqsClient = Mockery::mock(SqsClient::class);
31+
$this->mockedFilesystemAdapter = Mockery::mock(FilesystemAdapter::class);
32+
$this->mockedContainer = Mockery::mock('Illuminate\Container\Container');
33+
}
34+
935
public function testItRemovesTheJobFromTheDiskIfCleanupIsEnabled()
1036
{
37+
$this->mockedFilesystemAdapter->shouldReceive('disk')
38+
->with('s3')
39+
->andReturnSelf();
40+
41+
$this->mockedFilesystemAdapter->shouldReceive('delete')
42+
->with('prefix/e3cd03ee-59a3-4ad8-b0aa-ee2e3808ac81.json')
43+
->andReturnSelf();
44+
45+
$this->mockedContainer->shouldReceive('make')
46+
->with('filesystem')
47+
->andReturn($this->mockedFilesystemAdapter);
48+
49+
$this->mockedSqsClient->shouldReceive('deleteMessage');
50+
51+
$diskOptions = [
52+
'always_store' => true,
53+
'cleanup' => true,
54+
'disk' => 's3',
55+
'prefix' => 'prefix',
56+
];
57+
58+
$sqsDiskJob = new SqsDiskJob(
59+
$this->mockedContainer,
60+
$this->mockedSqsClient,
61+
$this->mockedJobData,
62+
'connection',
63+
'queue',
64+
$diskOptions
65+
);
66+
67+
$sqsDiskJob->delete();
1168
}
1269

1370
public function testItLeavesTheJobOnTheDiskIfCleanupIsDisabled()
1471
{
72+
$this->mockedContainer->shouldReceive('make')
73+
->with('filesystem')
74+
->never();
75+
76+
$this->mockedSqsClient->shouldReceive('deleteMessage')
77+
->once();
78+
79+
$diskOptions = [
80+
'always_store' => true,
81+
'cleanup' => false,
82+
'disk' => 's3',
83+
'prefix' => 'prefix',
84+
];
85+
86+
$sqsDiskJob = new SqsDiskJob(
87+
$this->mockedContainer,
88+
$this->mockedSqsClient,
89+
$this->mockedJobData,
90+
'connection',
91+
'queue',
92+
$diskOptions
93+
);
94+
95+
$sqsDiskJob->delete();
1596
}
1697

1798
public function testItReturnsTheRawBodyFromTheDiskIfAPointerExists()
1899
{
100+
$jobData = json_encode([
101+
'job' => 'job',
102+
'data' => ['data'],
103+
'attempts' => 1,
104+
]);
105+
106+
$this->mockedFilesystemAdapter->shouldReceive('disk')
107+
->with('s3')
108+
->andReturnSelf();
109+
110+
$this->mockedFilesystemAdapter->shouldReceive('get')
111+
->with('prefix/e3cd03ee-59a3-4ad8-b0aa-ee2e3808ac81.json')
112+
->once()
113+
->andReturn($jobData);
114+
115+
$this->mockedContainer->shouldReceive('make')
116+
->with('filesystem')
117+
->andReturn($this->mockedFilesystemAdapter);
118+
119+
$diskOptions = [
120+
'always_store' => true,
121+
'cleanup' => true,
122+
'disk' => 's3',
123+
'prefix' => 'prefix',
124+
];
125+
126+
$sqsDiskJob = new SqsDiskJob(
127+
$this->mockedContainer,
128+
$this->mockedSqsClient,
129+
$this->mockedJobData,
130+
'connection',
131+
'queue',
132+
$diskOptions
133+
);
134+
135+
$this->assertEquals($jobData, $sqsDiskJob->getRawBody());
19136
}
20137
}

0 commit comments

Comments
 (0)