|
3 | 3 | namespace Enqueue\SnsQs\Tests\Spec; |
4 | 4 |
|
5 | 5 | use Enqueue\Sns\SnsContext; |
| 6 | +use Enqueue\Sns\SnsSubscribe; |
6 | 7 | use Enqueue\SnsQs\SnsQsContext; |
| 8 | +use Enqueue\SnsQs\SnsQsQueue; |
| 9 | +use Enqueue\SnsQs\SnsQsTopic; |
7 | 10 | use Enqueue\Sqs\SqsConsumer; |
8 | 11 | use Enqueue\Sqs\SqsContext; |
9 | 12 | use Interop\Queue\Spec\ContextSpec; |
10 | 13 |
|
11 | 14 | class SnsQsContextTest extends ContextSpec |
12 | 15 | { |
| 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 | + |
13 | 47 | protected function createContext() |
14 | 48 | { |
15 | 49 | $sqsContext = $this->createMock(SqsContext::class); |
|
0 commit comments