Skip to content

Commit 20be1c2

Browse files
committed
[psr] add message trait, add get\set dest to message interface
1 parent 23c9cbc commit 20be1c2

9 files changed

+389
-207
lines changed

pkg/amqp-ext/AmqpMessage.php

Lines changed: 3 additions & 116 deletions
Original file line numberDiff line numberDiff line change
@@ -3,23 +3,11 @@
33
namespace Enqueue\AmqpExt;
44

55
use Enqueue\Psr\PsrMessage;
6+
use Enqueue\Psr\PsrMessageTrait;
67

78
class AmqpMessage implements PsrMessage
89
{
9-
/**
10-
* @var string
11-
*/
12-
private $body;
13-
14-
/**
15-
* @var array
16-
*/
17-
private $properties;
18-
19-
/**
20-
* @var array
21-
*/
22-
private $headers;
10+
use PsrMessageTrait;
2311

2412
/**
2513
* @var string|null
@@ -31,11 +19,6 @@ class AmqpMessage implements PsrMessage
3119
*/
3220
private $consumerTag;
3321

34-
/**
35-
* @var bool
36-
*/
37-
private $redelivered;
38-
3922
/**
4023
* @var int
4124
*/
@@ -46,7 +29,7 @@ class AmqpMessage implements PsrMessage
4629
* @param array $properties
4730
* @param array $headers
4831
*/
49-
public function __construct($body = null, array $properties = [], array $headers = [])
32+
public function __construct($body = '', array $properties = [], array $headers = [])
5033
{
5134
$this->body = $body;
5235
$this->properties = $properties;
@@ -56,102 +39,6 @@ public function __construct($body = null, array $properties = [], array $headers
5639
$this->flags = AMQP_NOPARAM;
5740
}
5841

59-
/**
60-
* {@inheritdoc}
61-
*/
62-
public function getBody()
63-
{
64-
return $this->body;
65-
}
66-
67-
/**
68-
* {@inheritdoc}
69-
*/
70-
public function setBody($body)
71-
{
72-
$this->body = $body;
73-
}
74-
75-
/**
76-
* {@inheritdoc}
77-
*/
78-
public function setProperties(array $properties)
79-
{
80-
$this->properties = $properties;
81-
}
82-
83-
/**
84-
* {@inheritdoc}
85-
*/
86-
public function getProperties()
87-
{
88-
return $this->properties;
89-
}
90-
91-
/**
92-
* {@inheritdoc}
93-
*/
94-
public function setProperty($name, $value)
95-
{
96-
$this->properties[$name] = $value;
97-
}
98-
99-
/**
100-
* {@inheritdoc}
101-
*/
102-
public function getProperty($name, $default = null)
103-
{
104-
return array_key_exists($name, $this->properties) ? $this->properties[$name] : $default;
105-
}
106-
107-
/**
108-
* {@inheritdoc}
109-
*/
110-
public function setHeaders(array $headers)
111-
{
112-
$this->headers = $headers;
113-
}
114-
115-
/**
116-
* {@inheritdoc}
117-
*/
118-
public function getHeaders()
119-
{
120-
return $this->headers;
121-
}
122-
123-
/**
124-
* {@inheritdoc}
125-
*/
126-
public function setHeader($name, $value)
127-
{
128-
$this->headers[$name] = $value;
129-
}
130-
131-
/**
132-
* {@inheritdoc}
133-
*/
134-
public function getHeader($name, $default = null)
135-
{
136-
return array_key_exists($name, $this->headers) ? $this->headers[$name] : $default;
137-
}
138-
139-
/**
140-
* {@inheritdoc}
141-
*/
142-
public function setRedelivered($redelivered)
143-
{
144-
$this->redelivered = (bool) $redelivered;
145-
}
146-
147-
/**
148-
* {@inheritdoc}
149-
*/
150-
public function isRedelivered()
151-
{
152-
return $this->redelivered;
153-
}
154-
15542
/**
15643
* {@inheritdoc}
15744
*/

pkg/amqp-ext/Tests/AmqpMessageTest.php

Lines changed: 11 additions & 88 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@
44

55
use Enqueue\AmqpExt\AmqpMessage;
66
use Enqueue\Psr\PsrMessage;
7+
use Enqueue\Psr\Tests\BasePsrMessageTest;
78
use Enqueue\Test\ClassExtensionTrait;
8-
use PHPUnit\Framework\TestCase;
99

10-
class AmqpMessageTest extends TestCase
10+
class AmqpMessageTest extends BasePsrMessageTest
1111
{
1212
use ClassExtensionTrait;
1313

@@ -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,98 +34,13 @@ 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-
12944
public function testShouldReturnPreviouslySetCorrelationId()
13045
{
13146
$message = new AmqpMessage();
@@ -204,4 +119,12 @@ public function testShouldClearPreviouslySetFlags()
204119

205120
$this->assertSame(AMQP_NOPARAM, $message->getFlags());
206121
}
122+
123+
/**
124+
* @return PsrMessage
125+
*/
126+
protected function createMessage()
127+
{
128+
return new AmqpMessage();
129+
}
207130
}

pkg/psr-queue/PsrMessage.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -175,4 +175,14 @@ public function setReplyTo($replyTo);
175175
* @return string|null
176176
*/
177177
public function getReplyTo();
178+
179+
/**
180+
* @return PsrDestination|null
181+
*/
182+
public function getDestination();
183+
184+
/**
185+
* @param PsrDestination|null $destination
186+
*/
187+
public function setDestination(PsrDestination $destination = null);
178188
}

0 commit comments

Comments
 (0)