Skip to content

Commit a29652d

Browse files
authored
Merge pull request #102 from php-enqueue/psr-processor-pass-queue
Add message spec test case
2 parents ecefbac + 4aee32b commit a29652d

28 files changed

+428
-760
lines changed

pkg/amqp-ext/AmqpMessage.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ class AmqpMessage implements PsrMessage
4646
* @param array $properties
4747
* @param array $headers
4848
*/
49-
public function __construct($body = null, array $properties = [], array $headers = [])
49+
public function __construct($body = '', array $properties = [], array $headers = [])
5050
{
5151
$this->body = $body;
5252
$this->properties = $properties;
@@ -189,7 +189,9 @@ public function getMessageId()
189189
*/
190190
public function getTimestamp()
191191
{
192-
return $this->getHeader('timestamp');
192+
$value = $this->getHeader('timestamp');
193+
194+
return $value === null ? null : (int) $value;
193195
}
194196

195197
/**

pkg/amqp-ext/Tests/AmqpMessageTest.php

Lines changed: 5 additions & 94 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ public function testCouldBeConstructedWithoutArguments()
2020
{
2121
$message = new AmqpMessage();
2222

23-
$this->assertNull($message->getBody());
23+
$this->assertSame('', $message->getBody());
2424
$this->assertSame([], $message->getProperties());
2525
$this->assertSame([], $message->getHeaders());
2626
}
@@ -34,131 +34,42 @@ public function testCouldBeConstructedWithOptionalArguments()
3434
$this->assertSame(['fooHeader' => 'fooHeaderVal'], $message->getHeaders());
3535
}
3636

37-
public function testShouldSetRedeliveredToFalseInConstructor()
38-
{
39-
$message = new AmqpMessage();
40-
41-
$this->assertSame(false, $message->isRedelivered());
42-
}
43-
4437
public function testShouldSetNoParamFlagInConstructor()
4538
{
4639
$message = new AmqpMessage();
4740

4841
$this->assertSame(\AMQP_NOPARAM, $message->getFlags());
4942
}
5043

51-
public function testShouldReturnPreviouslySetBody()
52-
{
53-
$message = new AmqpMessage();
54-
55-
$message->setBody('theBody');
56-
57-
$this->assertSame('theBody', $message->getBody());
58-
}
59-
60-
public function testShouldReturnPreviouslySetProperties()
61-
{
62-
$message = new AmqpMessage();
63-
64-
$message->setProperties(['foo' => 'fooVal', 'bar' => 'barVal']);
65-
66-
$this->assertSame(['foo' => 'fooVal', 'bar' => 'barVal'], $message->getProperties());
67-
}
68-
69-
public function testShouldReturnPreviouslySetProperty()
70-
{
71-
$message = new AmqpMessage(null, ['foo' => 'fooVal']);
72-
73-
$message->setProperty('bar', 'barVal');
74-
75-
$this->assertSame(['foo' => 'fooVal', 'bar' => 'barVal'], $message->getProperties());
76-
}
77-
78-
public function testShouldReturnSinglePreviouslySetProperty()
79-
{
80-
$message = new AmqpMessage();
81-
82-
$this->assertSame(null, $message->getProperty('bar'));
83-
$this->assertSame('default', $message->getProperty('bar', 'default'));
84-
85-
$message->setProperty('bar', 'barVal');
86-
$this->assertSame('barVal', $message->getProperty('bar'));
87-
}
88-
89-
public function testShouldReturnPreviouslySetHeaders()
90-
{
91-
$message = new AmqpMessage();
92-
93-
$message->setHeaders(['foo' => 'fooVal', 'bar' => 'barVal']);
94-
95-
$this->assertSame(['foo' => 'fooVal', 'bar' => 'barVal'], $message->getHeaders());
96-
}
97-
98-
public function testShouldReturnPreviouslySetHeader()
99-
{
100-
$message = new AmqpMessage(null, [], ['foo' => 'fooVal']);
101-
102-
$message->setHeader('bar', 'barVal');
103-
104-
$this->assertSame(['foo' => 'fooVal', 'bar' => 'barVal'], $message->getHeaders());
105-
}
106-
107-
public function testShouldReturnSinglePreviouslySetHeader()
108-
{
109-
$message = new AmqpMessage();
110-
111-
$this->assertSame(null, $message->getHeader('bar'));
112-
$this->assertSame('default', $message->getHeader('bar', 'default'));
113-
114-
$message->setHeader('bar', 'barVal');
115-
$this->assertSame('barVal', $message->getHeader('bar'));
116-
}
117-
118-
public function testShouldReturnPreviouslySetRedelivered()
119-
{
120-
$message = new AmqpMessage();
121-
122-
$message->setRedelivered(true);
123-
$this->assertSame(true, $message->isRedelivered());
124-
125-
$message->setRedelivered(false);
126-
$this->assertSame(false, $message->isRedelivered());
127-
}
128-
129-
public function testShouldReturnPreviouslySetCorrelationId()
44+
public function testShouldSetCorrelationIdAsHeader()
13045
{
13146
$message = new AmqpMessage();
13247
$message->setCorrelationId('theCorrelationId');
13348

134-
$this->assertSame('theCorrelationId', $message->getCorrelationId());
13549
$this->assertSame(['correlation_id' => 'theCorrelationId'], $message->getHeaders());
13650
}
13751

138-
public function testShouldReturnPreviouslySetMessageId()
52+
public function testShouldSetSetMessageIdAsHeader()
13953
{
14054
$message = new AmqpMessage();
14155
$message->setMessageId('theMessageId');
14256

143-
$this->assertSame('theMessageId', $message->getMessageId());
14457
$this->assertSame(['message_id' => 'theMessageId'], $message->getHeaders());
14558
}
14659

147-
public function testShouldReturnPreviouslySetTimestamp()
60+
public function testShouldSetTimestampAsHeader()
14861
{
14962
$message = new AmqpMessage();
15063
$message->setTimestamp('theTimestamp');
15164

152-
$this->assertSame('theTimestamp', $message->getTimestamp());
15365
$this->assertSame(['timestamp' => 'theTimestamp'], $message->getHeaders());
15466
}
15567

156-
public function testShouldReturnPreviouslySetReplyTo()
68+
public function testShouldSetReplyToAsHeader()
15769
{
15870
$message = new AmqpMessage();
15971
$message->setReplyTo('theReply');
16072

161-
$this->assertSame('theReply', $message->getReplyTo());
16273
$this->assertSame(['reply_to' => 'theReply'], $message->getHeaders());
16374
}
16475

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<?php
2+
3+
namespace Enqueue\AmqpExt\Tests\Spec;
4+
5+
use Enqueue\AmqpExt\AmqpMessage;
6+
use Enqueue\Psr\Spec\PsrMessageSpec;
7+
8+
class AmqpMessageTest extends PsrMessageSpec
9+
{
10+
/**
11+
* {@inheritdoc}
12+
*/
13+
protected function createMessage()
14+
{
15+
return new AmqpMessage();
16+
}
17+
}

pkg/dbal/DbalMessage.php

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ class DbalMessage implements PsrMessage
4141
* @param array $properties
4242
* @param array $headers
4343
*/
44-
public function __construct($body = null, array $properties = [], array $headers = [])
44+
public function __construct($body = '', array $properties = [], array $headers = [])
4545
{
4646
$this->body = $body;
4747
$this->properties = $properties;
@@ -210,7 +210,7 @@ public function setCorrelationId($correlationId)
210210
*/
211211
public function getCorrelationId()
212212
{
213-
return $this->getHeader('correlation_id', '');
213+
return $this->getHeader('correlation_id', null);
214214
}
215215

216216
/**
@@ -226,22 +226,24 @@ public function setMessageId($messageId)
226226
*/
227227
public function getMessageId()
228228
{
229-
return $this->getHeader('message_id', '');
229+
return $this->getHeader('message_id', null);
230230
}
231231

232232
/**
233233
* {@inheritdoc}
234234
*/
235235
public function getTimestamp()
236236
{
237-
return $this->getHeader('timestamp');
237+
$value = $this->getHeader('timestamp');
238+
239+
return $value === null ? null : (int) $value;
238240
}
239241

240242
/**
241243
* {@inheritdoc}
242244
*/
243245
public function setTimestamp($timestamp)
244246
{
245-
$this->setHeader('timestamp', (int) $timestamp);
247+
$this->setHeader('timestamp', $timestamp);
246248
}
247249
}

pkg/dbal/Tests/DbalMessageTest.php

Lines changed: 5 additions & 100 deletions
Original file line numberDiff line numberDiff line change
@@ -3,23 +3,17 @@
33
namespace Enqueue\Dbal\Tests;
44

55
use Enqueue\Dbal\DbalMessage;
6-
use Enqueue\Psr\PsrMessage;
76
use Enqueue\Test\ClassExtensionTrait;
87

98
class DbalMessageTest extends \PHPUnit_Framework_TestCase
109
{
1110
use ClassExtensionTrait;
1211

13-
public function testShouldImplementMessageInterface()
14-
{
15-
$this->assertClassImplements(PsrMessage::class, DbalMessage::class);
16-
}
17-
1812
public function testCouldBeConstructedWithoutArguments()
1913
{
2014
$message = new DbalMessage();
2115

22-
$this->assertNull($message->getBody());
16+
$this->assertSame('', $message->getBody());
2317
$this->assertSame([], $message->getProperties());
2418
$this->assertSame([], $message->getHeaders());
2519
}
@@ -33,13 +27,6 @@ public function testCouldBeConstructedWithOptionalArguments()
3327
$this->assertSame(['fooHeader' => 'fooHeaderVal'], $message->getHeaders());
3428
}
3529

36-
public function testShouldSetRedeliveredToFalseInConstructor()
37-
{
38-
$message = new DbalMessage();
39-
40-
$this->assertSame(false, $message->isRedelivered());
41-
}
42-
4330
public function testShouldSetPriorityToZeroInConstructor()
4431
{
4532
$message = new DbalMessage();
@@ -54,117 +41,35 @@ public function testShouldSetDelayToNullInConstructor()
5441
$this->assertNull($message->getDelay());
5542
}
5643

57-
public function testShouldReturnPreviouslySetBody()
58-
{
59-
$message = new DbalMessage();
60-
61-
$message->setBody('theBody');
62-
63-
$this->assertSame('theBody', $message->getBody());
64-
}
65-
66-
public function testShouldReturnPreviouslySetProperties()
67-
{
68-
$message = new DbalMessage();
69-
70-
$message->setProperties(['foo' => 'fooVal', 'bar' => 'barVal']);
71-
72-
$this->assertSame(['foo' => 'fooVal', 'bar' => 'barVal'], $message->getProperties());
73-
}
74-
75-
public function testShouldReturnPreviouslySetProperty()
76-
{
77-
$message = new DbalMessage(null, ['foo' => 'fooVal']);
78-
79-
$message->setProperty('bar', 'barVal');
80-
81-
$this->assertSame(['foo' => 'fooVal', 'bar' => 'barVal'], $message->getProperties());
82-
}
83-
84-
public function testShouldReturnSinglePreviouslySetProperty()
85-
{
86-
$message = new DbalMessage();
87-
88-
$this->assertSame(null, $message->getProperty('bar'));
89-
$this->assertSame('default', $message->getProperty('bar', 'default'));
90-
91-
$message->setProperty('bar', 'barVal');
92-
$this->assertSame('barVal', $message->getProperty('bar'));
93-
}
94-
95-
public function testShouldReturnPreviouslySetHeaders()
96-
{
97-
$message = new DbalMessage();
98-
99-
$message->setHeaders(['foo' => 'fooVal', 'bar' => 'barVal']);
100-
101-
$this->assertSame(['foo' => 'fooVal', 'bar' => 'barVal'], $message->getHeaders());
102-
}
103-
104-
public function testShouldReturnPreviouslySetHeader()
105-
{
106-
$message = new DbalMessage(null, [], ['foo' => 'fooVal']);
107-
108-
$message->setHeader('bar', 'barVal');
109-
110-
$this->assertSame(['foo' => 'fooVal', 'bar' => 'barVal'], $message->getHeaders());
111-
}
112-
113-
public function testShouldReturnSinglePreviouslySetHeader()
114-
{
115-
$message = new DbalMessage();
116-
117-
$this->assertSame(null, $message->getHeader('bar'));
118-
$this->assertSame('default', $message->getHeader('bar', 'default'));
119-
120-
$message->setHeader('bar', 'barVal');
121-
$this->assertSame('barVal', $message->getHeader('bar'));
122-
}
123-
124-
public function testShouldReturnPreviouslySetRedelivered()
125-
{
126-
$message = new DbalMessage();
127-
128-
$message->setRedelivered(true);
129-
$this->assertSame(true, $message->isRedelivered());
130-
131-
$message->setRedelivered(false);
132-
$this->assertSame(false, $message->isRedelivered());
133-
}
134-
135-
public function testShouldReturnPreviouslySetCorrelationId()
44+
public function testShouldSetCorrelationIdAsHeader()
13645
{
13746
$message = new DbalMessage();
13847
$message->setCorrelationId('theCorrelationId');
13948

140-
$this->assertSame('theCorrelationId', $message->getCorrelationId());
14149
$this->assertSame(['correlation_id' => 'theCorrelationId'], $message->getHeaders());
14250
}
14351

144-
public function testShouldReturnPreviouslySetMessageId()
52+
public function testShouldSetMessageIdAsHeader()
14553
{
14654
$message = new DbalMessage();
14755
$message->setMessageId('theMessageId');
14856

149-
$this->assertSame('theMessageId', $message->getMessageId());
15057
$this->assertSame(['message_id' => 'theMessageId'], $message->getHeaders());
15158
}
15259

153-
public function testShouldReturnPreviouslySetTimestamp()
60+
public function testShouldSetTimestampAsHeader()
15461
{
15562
$message = new DbalMessage();
15663
$message->setTimestamp(12345);
15764

158-
$this->assertSame(12345, $message->getTimestamp());
15965
$this->assertSame(['timestamp' => 12345], $message->getHeaders());
16066
}
16167

162-
public function testShouldReturnPreviouslySetReplyTo()
68+
public function testShouldSetReplyToAsHeader()
16369
{
16470
$message = new DbalMessage();
16571
$message->setReplyTo('theReply');
16672

167-
$this->assertSame('theReply', $message->getReplyTo());
16873
$this->assertSame(['reply_to' => 'theReply'], $message->getHeaders());
16974
}
17075
}

0 commit comments

Comments
 (0)