Skip to content

Commit 6545ef7

Browse files
committed
Add unit tests
1 parent e559948 commit 6545ef7

File tree

2 files changed

+64
-1
lines changed

2 files changed

+64
-1
lines changed

pkg/sns/Tests/Spec/SnsContextTest.php

+30-1
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,49 @@
22

33
namespace Enqueue\Sns\Tests\Spec;
44

5+
use Aws\Result;
56
use Enqueue\Sns\SnsClient;
67
use Enqueue\Sns\SnsContext;
8+
use Enqueue\Sns\SnsDestination;
9+
use Enqueue\Sns\SnsSubscribe;
710
use Interop\Queue\Spec\ContextSpec;
811

912
class SnsContextTest extends ContextSpec
1013
{
11-
public function testShouldCreateConsumerOnCreateConsumerMethodCall()
14+
public function testShouldCreateConsumerOnCreateConsumerMethodCall(): void
1215
{
1316
$this->expectException(\LogicException::class);
1417
$this->expectExceptionMessage('SNS transport does not support consumption. You should consider using SQS instead.');
1518

1619
parent::testShouldCreateConsumerOnCreateConsumerMethodCall();
1720
}
1821

22+
public function testSetsSubscriptionAttributes(): void
23+
{
24+
$client = $this->createMock(SnsClient::class);
25+
$client->expects($this->once())
26+
->method('listSubscriptionsByTopic')
27+
->willReturn(new Result(['Subscriptions' => [
28+
['SubscriptionArn' => 'arn1'],
29+
['SubscriptionArn' => 'arn2'],
30+
]]));
31+
$client->expects($this->exactly(2))
32+
->method('setSubscriptionAttributes')
33+
->withConsecutive(
34+
[$this->equalTo(['attr1' => 'value1', 'SubscriptionArn' => 'arn1'])],
35+
[$this->equalTo(['attr1' => 'value1', 'SubscriptionArn' => 'arn2'])],
36+
);
37+
38+
$context = new SnsContext($client, ['topic_arns' => ['topic1' => 'topicArn1']]);
39+
$context->setSubscriptionAttributes(new SnsSubscribe(
40+
new SnsDestination('topic1'),
41+
'endpoint1',
42+
'protocol1',
43+
false,
44+
['attr1' => 'value1'],
45+
));
46+
}
47+
1948
protected function createContext()
2049
{
2150
$client = $this->createMock(SnsClient::class);

pkg/snsqs/Tests/Spec/SnsQsContextTest.php

+34
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,47 @@
33
namespace Enqueue\SnsQs\Tests\Spec;
44

55
use Enqueue\Sns\SnsContext;
6+
use Enqueue\Sns\SnsSubscribe;
67
use Enqueue\SnsQs\SnsQsContext;
8+
use Enqueue\SnsQs\SnsQsQueue;
9+
use Enqueue\SnsQs\SnsQsTopic;
710
use Enqueue\Sqs\SqsConsumer;
811
use Enqueue\Sqs\SqsContext;
912
use Interop\Queue\Spec\ContextSpec;
1013

1114
class SnsQsContextTest extends ContextSpec
1215
{
16+
public function testSetsSubscriptionAttributes(): void
17+
{
18+
$topic = new SnsQsTopic('topic1');
19+
20+
$snsContext = $this->createMock(SnsContext::class);
21+
$snsContext->expects($this->once())
22+
->method('setSubscriptionAttributes')
23+
->with($this->equalTo(new SnsSubscribe(
24+
$topic,
25+
'queueArn1',
26+
'sqs',
27+
false,
28+
['attr1' => 'value1'],
29+
)));
30+
31+
$sqsContext = $this->createMock(SqsContext::class);
32+
$sqsContext->expects($this->any())
33+
->method('createConsumer')
34+
->willReturn($this->createMock(SqsConsumer::class));
35+
$sqsContext->expects($this->any())
36+
->method('getQueueArn')
37+
->willReturn('queueArn1');
38+
39+
$context = new SnsQsContext($snsContext, $sqsContext);
40+
$context->setSubscriptionAttributes(
41+
$topic,
42+
new SnsQsQueue('queue1'),
43+
['attr1' => 'value1'],
44+
);
45+
}
46+
1347
protected function createContext()
1448
{
1549
$sqsContext = $this->createMock(SqsContext::class);

0 commit comments

Comments
 (0)