-
Notifications
You must be signed in to change notification settings - Fork 440
/
Copy pathGenericDriverTest.php
83 lines (72 loc) · 2.53 KB
/
GenericDriverTest.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
<?php
namespace Enqueue\Tests\Client\Driver;
use DMS\PHPUnitExtensions\ArraySubset\Assert;
use Enqueue\Client\Config;
use Enqueue\Client\Driver\GenericDriver;
use Enqueue\Client\DriverInterface;
use Enqueue\Client\MessagePriority;
use Enqueue\NoEffect\NullMessage;
use Enqueue\NoEffect\NullQueue;
use Enqueue\NoEffect\NullTopic;
use Enqueue\Test\ClassExtensionTrait;
use Interop\Queue\Context;
use Interop\Queue\Message as InteropMessage;
use Interop\Queue\Producer as InteropProducer;
use Interop\Queue\Queue as InteropQueue;
use Interop\Queue\Topic as InteropTopic;
use PHPUnit\Framework\TestCase;
class GenericDriverTest extends TestCase
{
use ClassExtensionTrait;
use GenericDriverTestsTrait;
public function testShouldImplementsDriverInterface()
{
$this->assertClassImplements(DriverInterface::class, GenericDriver::class);
}
protected function createDriver(...$args): DriverInterface
{
return new GenericDriver(...$args);
}
protected function createContextMock(): Context
{
return $this->createMock(Context::class);
}
protected function createProducerMock(): InteropProducer
{
return $this->createMock(InteropProducer::class);
}
protected function createQueue(string $name): InteropQueue
{
return new NullQueue($name);
}
protected function createTopic(string $name): InteropTopic
{
return new NullTopic($name);
}
protected function createMessage(): InteropMessage
{
return new NullMessage();
}
protected function assertTransportMessage(InteropMessage $transportMessage): void
{
$this->assertSame('body', $transportMessage->getBody());
Assert::assertArraySubset([
'hkey' => 'hval',
'message_id' => 'theMessageId',
'timestamp' => 1000,
'reply_to' => 'theReplyTo',
'correlation_id' => 'theCorrelationId',
], $transportMessage->getHeaders());
$this->assertEquals([
'pkey' => 'pval',
Config::CONTENT_TYPE => 'ContentType',
Config::PRIORITY => MessagePriority::HIGH,
Config::EXPIRE => 123,
Config::DELAY => 345,
], $transportMessage->getProperties());
$this->assertSame('theMessageId', $transportMessage->getMessageId());
$this->assertSame(1000, $transportMessage->getTimestamp());
$this->assertSame('theReplyTo', $transportMessage->getReplyTo());
$this->assertSame('theCorrelationId', $transportMessage->getCorrelationId());
}
}