From 20be1c29baee6b8d80b429d3d16ddbac9d09cd3c Mon Sep 17 00:00:00 2001 From: Maksim Kotlyar Date: Wed, 24 May 2017 21:21:11 +0300 Subject: [PATCH 1/4] [psr] add message trait, add get\set dest to message interface --- pkg/amqp-ext/AmqpMessage.php | 119 +------------ pkg/amqp-ext/Tests/AmqpMessageTest.php | 99 ++--------- pkg/psr-queue/PsrMessage.php | 10 ++ pkg/psr-queue/PsrMessageTrait.php | 143 ++++++++++++++++ pkg/psr-queue/Tests/BasePsrMessageTest.php | 162 ++++++++++++++++++ pkg/psr-queue/Tests/ExceptionTest.php | 3 +- .../Tests/InvalidDestinationExceptionTest.php | 3 +- .../Tests/InvalidMessageExceptionTest.php | 3 +- pkg/psr-queue/Tests/PsrMessageTraitTest.php | 54 ++++++ 9 files changed, 389 insertions(+), 207 deletions(-) create mode 100644 pkg/psr-queue/PsrMessageTrait.php create mode 100644 pkg/psr-queue/Tests/BasePsrMessageTest.php create mode 100644 pkg/psr-queue/Tests/PsrMessageTraitTest.php diff --git a/pkg/amqp-ext/AmqpMessage.php b/pkg/amqp-ext/AmqpMessage.php index b65b42b7c..b03837e8f 100644 --- a/pkg/amqp-ext/AmqpMessage.php +++ b/pkg/amqp-ext/AmqpMessage.php @@ -3,23 +3,11 @@ namespace Enqueue\AmqpExt; use Enqueue\Psr\PsrMessage; +use Enqueue\Psr\PsrMessageTrait; class AmqpMessage implements PsrMessage { - /** - * @var string - */ - private $body; - - /** - * @var array - */ - private $properties; - - /** - * @var array - */ - private $headers; + use PsrMessageTrait; /** * @var string|null @@ -31,11 +19,6 @@ class AmqpMessage implements PsrMessage */ private $consumerTag; - /** - * @var bool - */ - private $redelivered; - /** * @var int */ @@ -46,7 +29,7 @@ class AmqpMessage implements PsrMessage * @param array $properties * @param array $headers */ - public function __construct($body = null, array $properties = [], array $headers = []) + public function __construct($body = '', array $properties = [], array $headers = []) { $this->body = $body; $this->properties = $properties; @@ -56,102 +39,6 @@ public function __construct($body = null, array $properties = [], array $headers $this->flags = AMQP_NOPARAM; } - /** - * {@inheritdoc} - */ - public function getBody() - { - return $this->body; - } - - /** - * {@inheritdoc} - */ - public function setBody($body) - { - $this->body = $body; - } - - /** - * {@inheritdoc} - */ - public function setProperties(array $properties) - { - $this->properties = $properties; - } - - /** - * {@inheritdoc} - */ - public function getProperties() - { - return $this->properties; - } - - /** - * {@inheritdoc} - */ - public function setProperty($name, $value) - { - $this->properties[$name] = $value; - } - - /** - * {@inheritdoc} - */ - public function getProperty($name, $default = null) - { - return array_key_exists($name, $this->properties) ? $this->properties[$name] : $default; - } - - /** - * {@inheritdoc} - */ - public function setHeaders(array $headers) - { - $this->headers = $headers; - } - - /** - * {@inheritdoc} - */ - public function getHeaders() - { - return $this->headers; - } - - /** - * {@inheritdoc} - */ - public function setHeader($name, $value) - { - $this->headers[$name] = $value; - } - - /** - * {@inheritdoc} - */ - public function getHeader($name, $default = null) - { - return array_key_exists($name, $this->headers) ? $this->headers[$name] : $default; - } - - /** - * {@inheritdoc} - */ - public function setRedelivered($redelivered) - { - $this->redelivered = (bool) $redelivered; - } - - /** - * {@inheritdoc} - */ - public function isRedelivered() - { - return $this->redelivered; - } - /** * {@inheritdoc} */ diff --git a/pkg/amqp-ext/Tests/AmqpMessageTest.php b/pkg/amqp-ext/Tests/AmqpMessageTest.php index 495fdf192..a728cf280 100644 --- a/pkg/amqp-ext/Tests/AmqpMessageTest.php +++ b/pkg/amqp-ext/Tests/AmqpMessageTest.php @@ -4,10 +4,10 @@ use Enqueue\AmqpExt\AmqpMessage; use Enqueue\Psr\PsrMessage; +use Enqueue\Psr\Tests\BasePsrMessageTest; use Enqueue\Test\ClassExtensionTrait; -use PHPUnit\Framework\TestCase; -class AmqpMessageTest extends TestCase +class AmqpMessageTest extends BasePsrMessageTest { use ClassExtensionTrait; @@ -20,7 +20,7 @@ public function testCouldBeConstructedWithoutArguments() { $message = new AmqpMessage(); - $this->assertNull($message->getBody()); + $this->assertSame('', $message->getBody()); $this->assertSame([], $message->getProperties()); $this->assertSame([], $message->getHeaders()); } @@ -34,13 +34,6 @@ public function testCouldBeConstructedWithOptionalArguments() $this->assertSame(['fooHeader' => 'fooHeaderVal'], $message->getHeaders()); } - public function testShouldSetRedeliveredToFalseInConstructor() - { - $message = new AmqpMessage(); - - $this->assertSame(false, $message->isRedelivered()); - } - public function testShouldSetNoParamFlagInConstructor() { $message = new AmqpMessage(); @@ -48,84 +41,6 @@ public function testShouldSetNoParamFlagInConstructor() $this->assertSame(\AMQP_NOPARAM, $message->getFlags()); } - public function testShouldReturnPreviouslySetBody() - { - $message = new AmqpMessage(); - - $message->setBody('theBody'); - - $this->assertSame('theBody', $message->getBody()); - } - - public function testShouldReturnPreviouslySetProperties() - { - $message = new AmqpMessage(); - - $message->setProperties(['foo' => 'fooVal', 'bar' => 'barVal']); - - $this->assertSame(['foo' => 'fooVal', 'bar' => 'barVal'], $message->getProperties()); - } - - public function testShouldReturnPreviouslySetProperty() - { - $message = new AmqpMessage(null, ['foo' => 'fooVal']); - - $message->setProperty('bar', 'barVal'); - - $this->assertSame(['foo' => 'fooVal', 'bar' => 'barVal'], $message->getProperties()); - } - - public function testShouldReturnSinglePreviouslySetProperty() - { - $message = new AmqpMessage(); - - $this->assertSame(null, $message->getProperty('bar')); - $this->assertSame('default', $message->getProperty('bar', 'default')); - - $message->setProperty('bar', 'barVal'); - $this->assertSame('barVal', $message->getProperty('bar')); - } - - public function testShouldReturnPreviouslySetHeaders() - { - $message = new AmqpMessage(); - - $message->setHeaders(['foo' => 'fooVal', 'bar' => 'barVal']); - - $this->assertSame(['foo' => 'fooVal', 'bar' => 'barVal'], $message->getHeaders()); - } - - public function testShouldReturnPreviouslySetHeader() - { - $message = new AmqpMessage(null, [], ['foo' => 'fooVal']); - - $message->setHeader('bar', 'barVal'); - - $this->assertSame(['foo' => 'fooVal', 'bar' => 'barVal'], $message->getHeaders()); - } - - public function testShouldReturnSinglePreviouslySetHeader() - { - $message = new AmqpMessage(); - - $this->assertSame(null, $message->getHeader('bar')); - $this->assertSame('default', $message->getHeader('bar', 'default')); - - $message->setHeader('bar', 'barVal'); - $this->assertSame('barVal', $message->getHeader('bar')); - } - - public function testShouldReturnPreviouslySetRedelivered() - { - $message = new AmqpMessage(); - - $message->setRedelivered(true); - $this->assertSame(true, $message->isRedelivered()); - - $message->setRedelivered(false); - $this->assertSame(false, $message->isRedelivered()); - } - public function testShouldReturnPreviouslySetCorrelationId() { $message = new AmqpMessage(); @@ -204,4 +119,12 @@ public function testShouldClearPreviouslySetFlags() $this->assertSame(AMQP_NOPARAM, $message->getFlags()); } + + /** + * @return PsrMessage + */ + protected function createMessage() + { + return new AmqpMessage(); + } } diff --git a/pkg/psr-queue/PsrMessage.php b/pkg/psr-queue/PsrMessage.php index 05a0dc6ed..0c8dfb8d6 100644 --- a/pkg/psr-queue/PsrMessage.php +++ b/pkg/psr-queue/PsrMessage.php @@ -175,4 +175,14 @@ public function setReplyTo($replyTo); * @return string|null */ public function getReplyTo(); + + /** + * @return PsrDestination|null + */ + public function getDestination(); + + /** + * @param PsrDestination|null $destination + */ + public function setDestination(PsrDestination $destination = null); } diff --git a/pkg/psr-queue/PsrMessageTrait.php b/pkg/psr-queue/PsrMessageTrait.php new file mode 100644 index 000000000..45d4700c5 --- /dev/null +++ b/pkg/psr-queue/PsrMessageTrait.php @@ -0,0 +1,143 @@ +body; + } + + /** + * {@inheritdoc} + */ + public function setBody($body) + { + $this->body = $body; + } + + /** + * {@inheritdoc} + */ + public function setProperties(array $properties) + { + $this->properties = $properties; + } + + /** + * {@inheritdoc} + */ + public function getProperties() + { + return $this->properties; + } + + /** + * {@inheritdoc} + */ + public function setProperty($name, $value) + { + $this->properties[$name] = $value; + } + + /** + * {@inheritdoc} + */ + public function getProperty($name, $default = null) + { + return array_key_exists($name, $this->properties) ? $this->properties[$name] : $default; + } + + /** + * {@inheritdoc} + */ + public function setHeaders(array $headers) + { + $this->headers = $headers; + } + + /** + * {@inheritdoc} + */ + public function getHeaders() + { + return $this->headers; + } + + /** + * {@inheritdoc} + */ + public function setHeader($name, $value) + { + $this->headers[$name] = $value; + } + + /** + * {@inheritdoc} + */ + public function getHeader($name, $default = null) + { + return array_key_exists($name, $this->headers) ? $this->headers[$name] : $default; + } + + /** + * @return PsrDestination|null + */ + public function getDestination() + { + return $this->destination; + } + + /** + * @param PsrDestination|null $destination + */ + public function setDestination(PsrDestination $destination = null) + { + $this->destination = $destination; + } + + /** + * {@inheritdoc} + */ + public function setRedelivered($redelivered) + { + $this->redelivered = (bool) $redelivered; + } + + /** + * {@inheritdoc} + */ + public function isRedelivered() + { + return $this->redelivered; + } +} diff --git a/pkg/psr-queue/Tests/BasePsrMessageTest.php b/pkg/psr-queue/Tests/BasePsrMessageTest.php new file mode 100644 index 000000000..0c2104384 --- /dev/null +++ b/pkg/psr-queue/Tests/BasePsrMessageTest.php @@ -0,0 +1,162 @@ +createMessage(); + + $this->assertFalse($message->isRedelivered()); + } + + public function testShouldReturnEmptyStringIfNotPreviouslySetOnGetBody() + { + $message = $this->createMessage(); + + $this->assertSame('', $message->getBody()); + } + + public function testShouldReturnPreviouslySetBody() + { + $message = $this->createMessage(); + + $message->setBody('theBody'); + + $this->assertSame('theBody', $message->getBody()); + } + + public function testShouldReturnEmptyArrayIfPropertiesNotPreviouslySetOnGetProperties() + { + $message = $this->createMessage(); + + $this->assertSame([], $message->getProperties()); + } + + public function testShouldReturnPreviouslySetProperties() + { + $message = $this->createMessage(); + + $message->setProperties(['foo' => 'fooVal', 'bar' => 'barVal']); + + $this->assertSame(['foo' => 'fooVal', 'bar' => 'barVal'], $message->getProperties()); + } + + public function testShouldReturnPreviouslySetProperty() + { + $message = $this->createMessage(); + + $message->setProperty('bar', 'barVal'); + + $this->assertSame(['bar' => 'barVal'], $message->getProperties()); + } + + public function testShouldReturnSinglePreviouslySetProperty() + { + $message = $this->createMessage(); + + $this->assertSame(null, $message->getProperty('bar')); + $this->assertSame('default', $message->getProperty('bar', 'default')); + + $message->setProperty('bar', 'barVal'); + $this->assertSame('barVal', $message->getProperty('bar')); + } + + public function testShouldReturnEmptyArrayIfHeadersNotPreviouslySetOnGetHeaders() + { + $message = $this->createMessage(); + + $this->assertSame([], $message->getHeaders()); + } + + public function testShouldReturnPreviouslySetHeaders() + { + $message = $this->createMessage(); + + $message->setHeaders(['foo' => 'fooVal', 'bar' => 'barVal']); + + $this->assertSame(['foo' => 'fooVal', 'bar' => 'barVal'], $message->getHeaders()); + } + + public function testShouldReturnPreviouslySetHeader() + { + $message = $this->createMessage(); + + $message->setHeader('bar', 'barVal'); + + $this->assertSame(['bar' => 'barVal'], $message->getHeaders()); + } + + public function testShouldReturnSinglePreviouslySetHeader() + { + $message = $this->createMessage(); + + $this->assertSame(null, $message->getHeader('bar')); + $this->assertSame('default', $message->getHeader('bar', 'default')); + + $message->setHeader('bar', 'barVal'); + $this->assertSame('barVal', $message->getHeader('bar')); + } + + public function testShouldReturnFalseIfNotPreviouslySetOnIsRedelivered() + { + $message = $this->createMessage(); + + $this->assertFalse($message->isRedelivered()); + } + + public function testShouldReturnPreviouslySetRedelivered() + { + $message = $this->createMessage(); + + $message->setRedelivered(true); + $this->assertSame(true, $message->isRedelivered()); + + $message->setRedelivered(false); + $this->assertSame(false, $message->isRedelivered()); + } + + public function testShouldReturnNullIfNotPreviouslySetOnGetDestination() + { + $message = $this->createMessage(); + + $this->assertNull($message->getDestination()); + } + + public function testShouldReturnPreviouslySetDestination() + { + $destinationMock = $this->createMock(PsrDestination::class); + + $message = $this->createMessage(); + + $message->setDestination($destinationMock); + + $this->assertSame($destinationMock, $message->getDestination()); + } + + public function testShouldAllowUnsetPreviouslySetDestination() + { + $destinationMock = $this->createMock(PsrDestination::class); + + $message = $this->createMessage(); + + $message->setDestination($destinationMock); + + // guard + $this->assertSame($destinationMock, $message->getDestination()); + + $message->setDestination(null); + + $this->assertNull($message->getDestination()); + } + + /** + * @return PsrMessage + */ + abstract protected function createMessage(); +} diff --git a/pkg/psr-queue/Tests/ExceptionTest.php b/pkg/psr-queue/Tests/ExceptionTest.php index 3a9049866..1fec3daef 100644 --- a/pkg/psr-queue/Tests/ExceptionTest.php +++ b/pkg/psr-queue/Tests/ExceptionTest.php @@ -5,8 +5,9 @@ use Enqueue\Psr\Exception; use Enqueue\Psr\ExceptionInterface; use Enqueue\Test\ClassExtensionTrait; +use PHPUnit\Framework\TestCase; -class ExceptionTest extends \PHPUnit\Framework\TestCase +class ExceptionTest extends TestCase { use ClassExtensionTrait; diff --git a/pkg/psr-queue/Tests/InvalidDestinationExceptionTest.php b/pkg/psr-queue/Tests/InvalidDestinationExceptionTest.php index 5fb58242a..3a442c569 100644 --- a/pkg/psr-queue/Tests/InvalidDestinationExceptionTest.php +++ b/pkg/psr-queue/Tests/InvalidDestinationExceptionTest.php @@ -6,8 +6,9 @@ use Enqueue\Psr\InvalidDestinationException; use Enqueue\Psr\PsrDestination; use Enqueue\Test\ClassExtensionTrait; +use PHPUnit\Framework\TestCase; -class InvalidDestinationExceptionTest extends \PHPUnit\Framework\TestCase +class InvalidDestinationExceptionTest extends TestCase { use ClassExtensionTrait; diff --git a/pkg/psr-queue/Tests/InvalidMessageExceptionTest.php b/pkg/psr-queue/Tests/InvalidMessageExceptionTest.php index db33b3c12..b57243053 100644 --- a/pkg/psr-queue/Tests/InvalidMessageExceptionTest.php +++ b/pkg/psr-queue/Tests/InvalidMessageExceptionTest.php @@ -5,8 +5,9 @@ use Enqueue\Psr\Exception as ExceptionInterface; use Enqueue\Psr\InvalidMessageException; use Enqueue\Test\ClassExtensionTrait; +use PHPUnit\Framework\TestCase; -class InvalidMessageExceptionTest extends \PHPUnit\Framework\TestCase +class InvalidMessageExceptionTest extends TestCase { use ClassExtensionTrait; diff --git a/pkg/psr-queue/Tests/PsrMessageTraitTest.php b/pkg/psr-queue/Tests/PsrMessageTraitTest.php new file mode 100644 index 000000000..b2d2819a8 --- /dev/null +++ b/pkg/psr-queue/Tests/PsrMessageTraitTest.php @@ -0,0 +1,54 @@ + Date: Thu, 25 May 2017 12:44:04 +0300 Subject: [PATCH 2/4] Add message spec --- pkg/amqp-ext/AmqpMessage.php | 121 +++++++++++- pkg/amqp-ext/Tests/AmqpMessageTest.php | 16 +- pkg/amqp-ext/Tests/Spec/AmqpMessageTest.php | 16 ++ pkg/dbal/DbalMessage.php | 12 +- pkg/dbal/Tests/DbalMessageTest.php | 104 +--------- pkg/dbal/Tests/Spec/DbalMessageTest.php | 16 ++ pkg/fs/FsMessage.php | 4 +- pkg/fs/Tests/FsMessageTest.php | 86 +-------- pkg/fs/Tests/Spec/FsMessageTest.php | 16 ++ pkg/null/NullMessage.php | 15 +- pkg/null/Tests/NullMessageTest.php | 178 +----------------- pkg/null/Tests/Spec/NullMessageTest.php | 16 ++ pkg/psr-queue/PsrMessage.php | 10 - pkg/psr-queue/PsrMessageTrait.php | 143 -------------- .../PsrMessageSpec.php} | 62 ++++-- pkg/psr-queue/Tests/PsrMessageTraitTest.php | 54 ------ pkg/redis/RedisMessage.php | 6 +- pkg/redis/Tests/Spec/RedisMessageTest.php | 16 ++ pkg/sqs/Tests/Spec/SqsMessageTest.php | 16 ++ pkg/stomp/Tests/Spec/StompMessageTest.php | 16 ++ 20 files changed, 322 insertions(+), 601 deletions(-) create mode 100644 pkg/amqp-ext/Tests/Spec/AmqpMessageTest.php create mode 100644 pkg/dbal/Tests/Spec/DbalMessageTest.php create mode 100644 pkg/fs/Tests/Spec/FsMessageTest.php create mode 100644 pkg/null/Tests/Spec/NullMessageTest.php delete mode 100644 pkg/psr-queue/PsrMessageTrait.php rename pkg/psr-queue/{Tests/BasePsrMessageTest.php => Spec/PsrMessageSpec.php} (68%) delete mode 100644 pkg/psr-queue/Tests/PsrMessageTraitTest.php create mode 100644 pkg/redis/Tests/Spec/RedisMessageTest.php create mode 100644 pkg/sqs/Tests/Spec/SqsMessageTest.php create mode 100644 pkg/stomp/Tests/Spec/StompMessageTest.php diff --git a/pkg/amqp-ext/AmqpMessage.php b/pkg/amqp-ext/AmqpMessage.php index b03837e8f..b1dfd53b5 100644 --- a/pkg/amqp-ext/AmqpMessage.php +++ b/pkg/amqp-ext/AmqpMessage.php @@ -3,11 +3,23 @@ namespace Enqueue\AmqpExt; use Enqueue\Psr\PsrMessage; -use Enqueue\Psr\PsrMessageTrait; class AmqpMessage implements PsrMessage { - use PsrMessageTrait; + /** + * @var string + */ + private $body; + + /** + * @var array + */ + private $properties; + + /** + * @var array + */ + private $headers; /** * @var string|null @@ -19,6 +31,11 @@ class AmqpMessage implements PsrMessage */ private $consumerTag; + /** + * @var bool + */ + private $redelivered; + /** * @var int */ @@ -39,6 +56,102 @@ public function __construct($body = '', array $properties = [], array $headers = $this->flags = AMQP_NOPARAM; } + /** + * {@inheritdoc} + */ + public function getBody() + { + return $this->body; + } + + /** + * {@inheritdoc} + */ + public function setBody($body) + { + $this->body = $body; + } + + /** + * {@inheritdoc} + */ + public function setProperties(array $properties) + { + $this->properties = $properties; + } + + /** + * {@inheritdoc} + */ + public function getProperties() + { + return $this->properties; + } + + /** + * {@inheritdoc} + */ + public function setProperty($name, $value) + { + $this->properties[$name] = $value; + } + + /** + * {@inheritdoc} + */ + public function getProperty($name, $default = null) + { + return array_key_exists($name, $this->properties) ? $this->properties[$name] : $default; + } + + /** + * {@inheritdoc} + */ + public function setHeaders(array $headers) + { + $this->headers = $headers; + } + + /** + * {@inheritdoc} + */ + public function getHeaders() + { + return $this->headers; + } + + /** + * {@inheritdoc} + */ + public function setHeader($name, $value) + { + $this->headers[$name] = $value; + } + + /** + * {@inheritdoc} + */ + public function getHeader($name, $default = null) + { + return array_key_exists($name, $this->headers) ? $this->headers[$name] : $default; + } + + /** + * {@inheritdoc} + */ + public function setRedelivered($redelivered) + { + $this->redelivered = (bool) $redelivered; + } + + /** + * {@inheritdoc} + */ + public function isRedelivered() + { + return $this->redelivered; + } + /** * {@inheritdoc} */ @@ -76,7 +189,9 @@ public function getMessageId() */ public function getTimestamp() { - return $this->getHeader('timestamp'); + $value = $this->getHeader('timestamp'); + + return $value === null ? null : (int) $value; } /** diff --git a/pkg/amqp-ext/Tests/AmqpMessageTest.php b/pkg/amqp-ext/Tests/AmqpMessageTest.php index a728cf280..d1b2a09d4 100644 --- a/pkg/amqp-ext/Tests/AmqpMessageTest.php +++ b/pkg/amqp-ext/Tests/AmqpMessageTest.php @@ -4,10 +4,10 @@ use Enqueue\AmqpExt\AmqpMessage; use Enqueue\Psr\PsrMessage; -use Enqueue\Psr\Tests\BasePsrMessageTest; use Enqueue\Test\ClassExtensionTrait; +use PHPUnit\Framework\TestCase; -class AmqpMessageTest extends BasePsrMessageTest +class AmqpMessageTest extends TestCase { use ClassExtensionTrait; @@ -41,39 +41,35 @@ public function testShouldSetNoParamFlagInConstructor() $this->assertSame(\AMQP_NOPARAM, $message->getFlags()); } - public function testShouldReturnPreviouslySetCorrelationId() + public function testShouldSetCorrelationIdAsHeader() { $message = new AmqpMessage(); $message->setCorrelationId('theCorrelationId'); - $this->assertSame('theCorrelationId', $message->getCorrelationId()); $this->assertSame(['correlation_id' => 'theCorrelationId'], $message->getHeaders()); } - public function testShouldReturnPreviouslySetMessageId() + public function testShouldSetSetMessageIdAsHeader() { $message = new AmqpMessage(); $message->setMessageId('theMessageId'); - $this->assertSame('theMessageId', $message->getMessageId()); $this->assertSame(['message_id' => 'theMessageId'], $message->getHeaders()); } - public function testShouldReturnPreviouslySetTimestamp() + public function testShouldSetTimestampAsHeader() { $message = new AmqpMessage(); $message->setTimestamp('theTimestamp'); - $this->assertSame('theTimestamp', $message->getTimestamp()); $this->assertSame(['timestamp' => 'theTimestamp'], $message->getHeaders()); } - public function testShouldReturnPreviouslySetReplyTo() + public function testShouldSetReplyToAsHeader() { $message = new AmqpMessage(); $message->setReplyTo('theReply'); - $this->assertSame('theReply', $message->getReplyTo()); $this->assertSame(['reply_to' => 'theReply'], $message->getHeaders()); } diff --git a/pkg/amqp-ext/Tests/Spec/AmqpMessageTest.php b/pkg/amqp-ext/Tests/Spec/AmqpMessageTest.php new file mode 100644 index 000000000..8b57b5334 --- /dev/null +++ b/pkg/amqp-ext/Tests/Spec/AmqpMessageTest.php @@ -0,0 +1,16 @@ +body = $body; $this->properties = $properties; @@ -210,7 +210,7 @@ public function setCorrelationId($correlationId) */ public function getCorrelationId() { - return $this->getHeader('correlation_id', ''); + return $this->getHeader('correlation_id', null); } /** @@ -226,7 +226,7 @@ public function setMessageId($messageId) */ public function getMessageId() { - return $this->getHeader('message_id', ''); + return $this->getHeader('message_id', null); } /** @@ -234,7 +234,9 @@ public function getMessageId() */ public function getTimestamp() { - return $this->getHeader('timestamp'); + $value = $this->getHeader('timestamp'); + + return $value === null ? null : (int) $value; } /** @@ -242,6 +244,6 @@ public function getTimestamp() */ public function setTimestamp($timestamp) { - $this->setHeader('timestamp', (int) $timestamp); + $this->setHeader('timestamp', $timestamp); } } diff --git a/pkg/dbal/Tests/DbalMessageTest.php b/pkg/dbal/Tests/DbalMessageTest.php index f1a5a7edb..342b3dd37 100644 --- a/pkg/dbal/Tests/DbalMessageTest.php +++ b/pkg/dbal/Tests/DbalMessageTest.php @@ -10,16 +10,11 @@ class DbalMessageTest extends \PHPUnit_Framework_TestCase { use ClassExtensionTrait; - public function testShouldImplementMessageInterface() - { - $this->assertClassImplements(PsrMessage::class, DbalMessage::class); - } - public function testCouldBeConstructedWithoutArguments() { $message = new DbalMessage(); - $this->assertNull($message->getBody()); + $this->assertSame('', $message->getBody()); $this->assertSame([], $message->getProperties()); $this->assertSame([], $message->getHeaders()); } @@ -33,13 +28,6 @@ public function testCouldBeConstructedWithOptionalArguments() $this->assertSame(['fooHeader' => 'fooHeaderVal'], $message->getHeaders()); } - public function testShouldSetRedeliveredToFalseInConstructor() - { - $message = new DbalMessage(); - - $this->assertSame(false, $message->isRedelivered()); - } - public function testShouldSetPriorityToZeroInConstructor() { $message = new DbalMessage(); @@ -54,117 +42,35 @@ public function testShouldSetDelayToNullInConstructor() $this->assertNull($message->getDelay()); } - public function testShouldReturnPreviouslySetBody() - { - $message = new DbalMessage(); - - $message->setBody('theBody'); - - $this->assertSame('theBody', $message->getBody()); - } - - public function testShouldReturnPreviouslySetProperties() - { - $message = new DbalMessage(); - - $message->setProperties(['foo' => 'fooVal', 'bar' => 'barVal']); - - $this->assertSame(['foo' => 'fooVal', 'bar' => 'barVal'], $message->getProperties()); - } - - public function testShouldReturnPreviouslySetProperty() - { - $message = new DbalMessage(null, ['foo' => 'fooVal']); - - $message->setProperty('bar', 'barVal'); - - $this->assertSame(['foo' => 'fooVal', 'bar' => 'barVal'], $message->getProperties()); - } - - public function testShouldReturnSinglePreviouslySetProperty() - { - $message = new DbalMessage(); - - $this->assertSame(null, $message->getProperty('bar')); - $this->assertSame('default', $message->getProperty('bar', 'default')); - - $message->setProperty('bar', 'barVal'); - $this->assertSame('barVal', $message->getProperty('bar')); - } - - public function testShouldReturnPreviouslySetHeaders() - { - $message = new DbalMessage(); - - $message->setHeaders(['foo' => 'fooVal', 'bar' => 'barVal']); - - $this->assertSame(['foo' => 'fooVal', 'bar' => 'barVal'], $message->getHeaders()); - } - - public function testShouldReturnPreviouslySetHeader() - { - $message = new DbalMessage(null, [], ['foo' => 'fooVal']); - - $message->setHeader('bar', 'barVal'); - - $this->assertSame(['foo' => 'fooVal', 'bar' => 'barVal'], $message->getHeaders()); - } - - public function testShouldReturnSinglePreviouslySetHeader() - { - $message = new DbalMessage(); - - $this->assertSame(null, $message->getHeader('bar')); - $this->assertSame('default', $message->getHeader('bar', 'default')); - - $message->setHeader('bar', 'barVal'); - $this->assertSame('barVal', $message->getHeader('bar')); - } - - public function testShouldReturnPreviouslySetRedelivered() - { - $message = new DbalMessage(); - - $message->setRedelivered(true); - $this->assertSame(true, $message->isRedelivered()); - - $message->setRedelivered(false); - $this->assertSame(false, $message->isRedelivered()); - } - - public function testShouldReturnPreviouslySetCorrelationId() + public function testShouldSetCorrelationIdAsHeader() { $message = new DbalMessage(); $message->setCorrelationId('theCorrelationId'); - $this->assertSame('theCorrelationId', $message->getCorrelationId()); $this->assertSame(['correlation_id' => 'theCorrelationId'], $message->getHeaders()); } - public function testShouldReturnPreviouslySetMessageId() + public function testShouldSetMessageIdAsHeader() { $message = new DbalMessage(); $message->setMessageId('theMessageId'); - $this->assertSame('theMessageId', $message->getMessageId()); $this->assertSame(['message_id' => 'theMessageId'], $message->getHeaders()); } - public function testShouldReturnPreviouslySetTimestamp() + public function testShouldSetTimestampAsHeader() { $message = new DbalMessage(); $message->setTimestamp(12345); - $this->assertSame(12345, $message->getTimestamp()); $this->assertSame(['timestamp' => 12345], $message->getHeaders()); } - public function testShouldReturnPreviouslySetReplyTo() + public function testShouldSetReplyToAsHeader() { $message = new DbalMessage(); $message->setReplyTo('theReply'); - $this->assertSame('theReply', $message->getReplyTo()); $this->assertSame(['reply_to' => 'theReply'], $message->getHeaders()); } } diff --git a/pkg/dbal/Tests/Spec/DbalMessageTest.php b/pkg/dbal/Tests/Spec/DbalMessageTest.php new file mode 100644 index 000000000..e162d64d0 --- /dev/null +++ b/pkg/dbal/Tests/Spec/DbalMessageTest.php @@ -0,0 +1,16 @@ +getHeader('correlation_id', ''); + return $this->getHeader('correlation_id'); } /** @@ -164,7 +164,7 @@ public function setMessageId($messageId) */ public function getMessageId() { - return $this->getHeader('message_id', ''); + return $this->getHeader('message_id'); } /** diff --git a/pkg/fs/Tests/FsMessageTest.php b/pkg/fs/Tests/FsMessageTest.php index 0a1e98ada..eee2cca82 100644 --- a/pkg/fs/Tests/FsMessageTest.php +++ b/pkg/fs/Tests/FsMessageTest.php @@ -10,14 +10,18 @@ class FsMessageTest extends \PHPUnit\Framework\TestCase { use ClassExtensionTrait; - public function testShouldImplementMessageInterface() + public function testShouldImplementJsonSerializableInterface() { - $this->assertClassImplements(PsrMessage::class, FsMessage::class); + $this->assertClassImplements(\JsonSerializable::class, FsMessage::class); } - public function testShouldImplementJsonSerializableInterface() + public function testCouldConstructMessageWithoutArguments() { - $this->assertClassImplements(\JsonSerializable::class, FsMessage::class); + $message = new FsMessage(''); + + $this->assertSame('', $message->getBody()); + $this->assertSame([], $message->getHeaders()); + $this->assertSame([], $message->getProperties()); } public function testCouldConstructMessageWithBody() @@ -41,49 +45,6 @@ public function testCouldConstructMessageWithHeaders() $this->assertSame(['key' => 'value'], $message->getHeaders()); } - public function testCouldSetGetBody() - { - $message = new FsMessage(); - $message->setBody('body'); - - $this->assertSame('body', $message->getBody()); - } - - public function testCouldSetGetProperties() - { - $message = new FsMessage(); - $message->setProperties(['key' => 'value']); - - $this->assertSame(['key' => 'value'], $message->getProperties()); - } - - public function testCouldSetGetHeaders() - { - $message = new FsMessage(); - $message->setHeaders(['key' => 'value']); - - $this->assertSame(['key' => 'value'], $message->getHeaders()); - } - - public function testCouldSetGetRedelivered() - { - $message = new FsMessage(); - - $message->setRedelivered(true); - $this->assertTrue($message->isRedelivered()); - - $message->setRedelivered(false); - $this->assertFalse($message->isRedelivered()); - } - - public function testCouldSetGetCorrelationId() - { - $message = new FsMessage(); - $message->setCorrelationId('the-correlation-id'); - - $this->assertSame('the-correlation-id', $message->getCorrelationId()); - } - public function testShouldSetCorrelationIdAsHeader() { $message = new FsMessage(); @@ -92,14 +53,6 @@ public function testShouldSetCorrelationIdAsHeader() $this->assertSame(['correlation_id' => 'the-correlation-id'], $message->getHeaders()); } - public function testCouldSetGetMessageId() - { - $message = new FsMessage(); - $message->setMessageId('the-message-id'); - - $this->assertSame('the-message-id', $message->getMessageId()); - } - public function testCouldSetMessageIdAsHeader() { $message = new FsMessage(); @@ -108,14 +61,6 @@ public function testCouldSetMessageIdAsHeader() $this->assertSame(['message_id' => 'the-message-id'], $message->getHeaders()); } - public function testCouldSetGetTimestamp() - { - $message = new FsMessage(); - $message->setTimestamp(12345); - - $this->assertSame(12345, $message->getTimestamp()); - } - public function testCouldSetTimestampAsHeader() { $message = new FsMessage(); @@ -124,21 +69,6 @@ public function testCouldSetTimestampAsHeader() $this->assertSame(['timestamp' => 12345], $message->getHeaders()); } - public function testShouldReturnNullAsDefaultReplyTo() - { - $message = new FsMessage(); - - $this->assertSame(null, $message->getReplyTo()); - } - - public function testShouldAllowGetPreviouslySetReplyTo() - { - $message = new FsMessage(); - $message->setReplyTo('theQueueName'); - - $this->assertSame('theQueueName', $message->getReplyTo()); - } - public function testShouldAllowGetPreviouslySetReplyToAsHeader() { $message = new FsMessage(); diff --git a/pkg/fs/Tests/Spec/FsMessageTest.php b/pkg/fs/Tests/Spec/FsMessageTest.php new file mode 100644 index 000000000..f3b7a1127 --- /dev/null +++ b/pkg/fs/Tests/Spec/FsMessageTest.php @@ -0,0 +1,16 @@ +properties = []; - $this->headers = []; + $this->body = $body; + $this->properties = $properties; + $this->headers = $headers; $this->redelivered = false; } @@ -146,7 +147,7 @@ public function setCorrelationId($correlationId) */ public function getCorrelationId() { - return $this->getHeader('correlation_id', ''); + return $this->getHeader('correlation_id'); } /** @@ -165,7 +166,7 @@ public function setMessageId($messageId) */ public function getMessageId() { - return $this->getHeader('message_id', ''); + return $this->getHeader('message_id'); } /** @@ -173,7 +174,9 @@ public function getMessageId() */ public function getTimestamp() { - return $this->getHeader('timestamp'); + $value = $this->getHeader('timestamp'); + + return $value === null ? null : (int) $value; } /** diff --git a/pkg/null/Tests/NullMessageTest.php b/pkg/null/Tests/NullMessageTest.php index 04a826d0e..a1fbb4d63 100644 --- a/pkg/null/Tests/NullMessageTest.php +++ b/pkg/null/Tests/NullMessageTest.php @@ -17,188 +17,20 @@ public function testShouldImplementMessageInterface() } public function testCouldBeConstructedWithoutAnyArguments() - { - new NullMessage(); - } - - public function testShouldNewMessageReturnEmptyBody() - { - $message = new NullMessage(); - - $this->assertNull($message->getBody()); - } - - public function testShouldNewMessageReturnEmptyProperties() { $message = new NullMessage(); + $this->assertSame('', $message->getBody()); $this->assertSame([], $message->getProperties()); - } - - public function testShouldNewMessageReturnEmptyHeaders() - { - $message = new NullMessage(); - $this->assertSame([], $message->getHeaders()); } - public function testShouldAllowGetPreviouslySetBody() + public function testCouldBeConstructedWithOptionalArguments() { - $message = new NullMessage(); - - $message->setBody('theBody'); + $message = new NullMessage('theBody', ['barProp' => 'barPropVal'], ['fooHeader' => 'fooHeaderVal']); $this->assertSame('theBody', $message->getBody()); - } - - public function testShouldAllowGetPreviouslySetHeaders() - { - $message = new NullMessage(); - - $message->setHeaders(['foo' => 'fooVal']); - - $this->assertSame(['foo' => 'fooVal'], $message->getHeaders()); - } - - public function testShouldAllowGetPreviouslySetProperties() - { - $message = new NullMessage(); - - $message->setProperties(['foo' => 'fooVal']); - - $this->assertSame(['foo' => 'fooVal'], $message->getProperties()); - } - - public function testShouldAllowGetByNamePreviouslySetProperty() - { - $message = new NullMessage(); - - $message->setProperties(['foo' => 'fooVal']); - - $this->assertSame('fooVal', $message->getProperty('foo')); - } - - public function testShouldAllowGetByNamePreviouslySetHeader() - { - $message = new NullMessage(); - - $message->setHeaders(['foo' => 'fooVal']); - - $this->assertSame('fooVal', $message->getHeader('foo')); - } - - public function testShouldReturnDefaultIfPropertyNotSet() - { - $message = new NullMessage(); - - $message->setProperties(['foo' => 'fooVal']); - - $this->assertSame('barDefault', $message->getProperty('bar', 'barDefault')); - } - - public function testShouldReturnDefaultIfHeaderNotSet() - { - $message = new NullMessage(); - - $message->setHeaders(['foo' => 'fooVal']); - - $this->assertSame('barDefault', $message->getHeader('bar', 'barDefault')); - } - - public function testShouldSetRedeliveredFalseInConstructor() - { - $message = new NullMessage(); - - $this->assertFalse($message->isRedelivered()); - } - - public function testShouldAllowGetPreviouslySetRedelivered() - { - $message = new NullMessage(); - $message->setRedelivered(true); - - $this->assertTrue($message->isRedelivered()); - } - - public function testShouldReturnEmptyStringAsDefaultCorrelationId() - { - $message = new NullMessage(); - - self::assertSame('', $message->getCorrelationId()); - } - - public function testShouldAllowGetPreviouslySetCorrelationId() - { - $message = new NullMessage(); - $message->setCorrelationId('theId'); - - self::assertSame('theId', $message->getCorrelationId()); - } - - public function testShouldCastCorrelationIdToStringOnSet() - { - $message = new NullMessage(); - $message->setCorrelationId(123); - - self::assertSame('123', $message->getCorrelationId()); - } - - public function testShouldReturnEmptyStringAsDefaultMessageId() - { - $message = new NullMessage(); - - self::assertSame('', $message->getMessageId()); - } - - public function testShouldAllowGetPreviouslySetMessageId() - { - $message = new NullMessage(); - $message->setMessageId('theId'); - - self::assertSame('theId', $message->getMessageId()); - } - - public function testShouldCastMessageIdToStringOnSet() - { - $message = new NullMessage(); - $message->setMessageId(123); - - self::assertSame('123', $message->getMessageId()); - } - - public function testShouldReturnNullAsDefaultTimestamp() - { - $message = new NullMessage(); - - self::assertSame(null, $message->getTimestamp()); - } - - public function testShouldAllowGetPreviouslySetTimestamp() - { - $message = new NullMessage(); - $message->setTimestamp(123); - - self::assertSame(123, $message->getTimestamp()); - } - - public function testShouldCastTimestampToIntOnSet() - { - $message = new NullMessage(); - $message->setTimestamp('123'); - - self::assertSame(123, $message->getTimestamp()); - } - - public function testShouldReturnNullAsDefaultReplyTo() - { - $message = new NullMessage(); - self::assertSame(null, $message->getReplyTo()); - } - - public function testShouldAllowGetPreviouslySetReplyTo() - { - $message = new NullMessage(); - $message->setReplyTo('theQueueName'); - self::assertSame('theQueueName', $message->getReplyTo()); + $this->assertSame(['barProp' => 'barPropVal'], $message->getProperties()); + $this->assertSame(['fooHeader' => 'fooHeaderVal'], $message->getHeaders()); } } diff --git a/pkg/null/Tests/Spec/NullMessageTest.php b/pkg/null/Tests/Spec/NullMessageTest.php new file mode 100644 index 000000000..aeadcf7e1 --- /dev/null +++ b/pkg/null/Tests/Spec/NullMessageTest.php @@ -0,0 +1,16 @@ +body; - } - - /** - * {@inheritdoc} - */ - public function setBody($body) - { - $this->body = $body; - } - - /** - * {@inheritdoc} - */ - public function setProperties(array $properties) - { - $this->properties = $properties; - } - - /** - * {@inheritdoc} - */ - public function getProperties() - { - return $this->properties; - } - - /** - * {@inheritdoc} - */ - public function setProperty($name, $value) - { - $this->properties[$name] = $value; - } - - /** - * {@inheritdoc} - */ - public function getProperty($name, $default = null) - { - return array_key_exists($name, $this->properties) ? $this->properties[$name] : $default; - } - - /** - * {@inheritdoc} - */ - public function setHeaders(array $headers) - { - $this->headers = $headers; - } - - /** - * {@inheritdoc} - */ - public function getHeaders() - { - return $this->headers; - } - - /** - * {@inheritdoc} - */ - public function setHeader($name, $value) - { - $this->headers[$name] = $value; - } - - /** - * {@inheritdoc} - */ - public function getHeader($name, $default = null) - { - return array_key_exists($name, $this->headers) ? $this->headers[$name] : $default; - } - - /** - * @return PsrDestination|null - */ - public function getDestination() - { - return $this->destination; - } - - /** - * @param PsrDestination|null $destination - */ - public function setDestination(PsrDestination $destination = null) - { - $this->destination = $destination; - } - - /** - * {@inheritdoc} - */ - public function setRedelivered($redelivered) - { - $this->redelivered = (bool) $redelivered; - } - - /** - * {@inheritdoc} - */ - public function isRedelivered() - { - return $this->redelivered; - } -} diff --git a/pkg/psr-queue/Tests/BasePsrMessageTest.php b/pkg/psr-queue/Spec/PsrMessageSpec.php similarity index 68% rename from pkg/psr-queue/Tests/BasePsrMessageTest.php rename to pkg/psr-queue/Spec/PsrMessageSpec.php index 0c2104384..c7aa51033 100644 --- a/pkg/psr-queue/Tests/BasePsrMessageTest.php +++ b/pkg/psr-queue/Spec/PsrMessageSpec.php @@ -1,13 +1,17 @@ assertInstanceOf(PsrMessage::class, $this->createMessage()); + } + public function testShouldSetRedeliveredToFalseInConstructor() { $message = $this->createMessage(); @@ -121,38 +125,64 @@ public function testShouldReturnPreviouslySetRedelivered() $this->assertSame(false, $message->isRedelivered()); } - public function testShouldReturnNullIfNotPreviouslySetOnGetDestination() + public function testShouldReturnNullIfNotPreviouslySetCorrelationId() { $message = $this->createMessage(); - $this->assertNull($message->getDestination()); + $this->assertNull($message->getCorrelationId()); } - public function testShouldReturnPreviouslySetDestination() + public function testShouldReturnPreviouslySetCorrelationId() { - $destinationMock = $this->createMock(PsrDestination::class); + $message = $this->createMessage(); + $message->setCorrelationId('theCorrelationId'); + + $this->assertSame('theCorrelationId', $message->getCorrelationId()); + } + public function testShouldReturnNullIfNotPreviouslySetMessageId() + { $message = $this->createMessage(); - $message->setDestination($destinationMock); + $this->assertNull($message->getMessageId()); + } + + public function testShouldReturnPreviouslySetMessageId() + { + $message = $this->createMessage(); + $message->setMessageId('theMessageId'); - $this->assertSame($destinationMock, $message->getDestination()); + $this->assertSame('theMessageId', $message->getMessageId()); } - public function testShouldAllowUnsetPreviouslySetDestination() + public function testShouldReturnNullIfNotPreviouslySetTimestamp() { - $destinationMock = $this->createMock(PsrDestination::class); + $message = $this->createMessage(); + + $this->assertNull($message->getTimestamp()); + } + public function testShouldReturnPreviouslySetTimestampAsInt() + { $message = $this->createMessage(); + $message->setTimestamp('123'); - $message->setDestination($destinationMock); + $this->assertSame(123, $message->getTimestamp()); + } - // guard - $this->assertSame($destinationMock, $message->getDestination()); + public function testShouldReturnNullIfNotPreviouslySetReplyTo() + { + $message = $this->createMessage(); + + $this->assertNull($message->getReplyTo()); + } - $message->setDestination(null); + public function testShouldReturnPreviouslySetReplyTo() + { + $message = $this->createMessage(); + $message->setReplyTo('theReply'); - $this->assertNull($message->getDestination()); + $this->assertSame('theReply', $message->getReplyTo()); } /** diff --git a/pkg/psr-queue/Tests/PsrMessageTraitTest.php b/pkg/psr-queue/Tests/PsrMessageTraitTest.php deleted file mode 100644 index b2d2819a8..000000000 --- a/pkg/psr-queue/Tests/PsrMessageTraitTest.php +++ /dev/null @@ -1,54 +0,0 @@ -body = $body; $this->properties = $properties; @@ -173,7 +173,9 @@ public function getMessageId() */ public function getTimestamp() { - return $this->getHeader('timestamp'); + $value = $this->getHeader('timestamp'); + + return $value === null ? null : (int) $value; } /** diff --git a/pkg/redis/Tests/Spec/RedisMessageTest.php b/pkg/redis/Tests/Spec/RedisMessageTest.php new file mode 100644 index 000000000..6c5dc74d3 --- /dev/null +++ b/pkg/redis/Tests/Spec/RedisMessageTest.php @@ -0,0 +1,16 @@ + Date: Thu, 25 May 2017 12:53:54 +0300 Subject: [PATCH 3/4] php cs fixes --- pkg/amqp-ext/Tests/AmqpMessageTest.php | 8 -- pkg/amqp-ext/Tests/Spec/AmqpMessageTest.php | 3 +- pkg/dbal/Tests/DbalMessageTest.php | 1 - pkg/dbal/Tests/Spec/DbalMessageTest.php | 3 +- pkg/fs/Tests/FsMessageTest.php | 1 - pkg/fs/Tests/Spec/FsMessageTest.php | 3 +- pkg/null/Tests/Spec/NullMessageTest.php | 3 +- pkg/redis/Tests/RedisMessageTest.php | 103 ++----------------- pkg/redis/Tests/RedisProducerTest.php | 2 +- pkg/redis/Tests/Spec/RedisMessageTest.php | 3 +- pkg/sqs/SqsMessage.php | 12 ++- pkg/sqs/Tests/Spec/SqsMessageTest.php | 3 +- pkg/sqs/Tests/SqsMessageTest.php | 107 +++----------------- pkg/stomp/StompMessage.php | 4 +- pkg/stomp/Tests/Spec/StompMessageTest.php | 3 +- pkg/stomp/Tests/StompMessageTest.php | 103 ++----------------- 16 files changed, 56 insertions(+), 306 deletions(-) diff --git a/pkg/amqp-ext/Tests/AmqpMessageTest.php b/pkg/amqp-ext/Tests/AmqpMessageTest.php index d1b2a09d4..e1ea82da5 100644 --- a/pkg/amqp-ext/Tests/AmqpMessageTest.php +++ b/pkg/amqp-ext/Tests/AmqpMessageTest.php @@ -115,12 +115,4 @@ public function testShouldClearPreviouslySetFlags() $this->assertSame(AMQP_NOPARAM, $message->getFlags()); } - - /** - * @return PsrMessage - */ - protected function createMessage() - { - return new AmqpMessage(); - } } diff --git a/pkg/amqp-ext/Tests/Spec/AmqpMessageTest.php b/pkg/amqp-ext/Tests/Spec/AmqpMessageTest.php index 8b57b5334..0e24bf3f4 100644 --- a/pkg/amqp-ext/Tests/Spec/AmqpMessageTest.php +++ b/pkg/amqp-ext/Tests/Spec/AmqpMessageTest.php @@ -1,4 +1,5 @@ assertClassImplements(PsrMessage::class, RedisMessage::class); - } - public function testShouldImplementJsonSerializableInterface() { $this->assertClassImplements(\JsonSerializable::class, RedisMessage::class); } - public function testCouldConstructMessageWithBody() - { - $message = new RedisMessage('body'); - - $this->assertSame('body', $message->getBody()); - } - - public function testCouldConstructMessageWithProperties() - { - $message = new RedisMessage('', ['key' => 'value']); - - $this->assertSame(['key' => 'value'], $message->getProperties()); - } - - public function testCouldConstructMessageWithHeaders() - { - $message = new RedisMessage('', [], ['key' => 'value']); - - $this->assertSame(['key' => 'value'], $message->getHeaders()); - } - - public function testCouldSetGetBody() - { - $message = new RedisMessage(); - $message->setBody('body'); - - $this->assertSame('body', $message->getBody()); - } - - public function testCouldSetGetProperties() - { - $message = new RedisMessage(); - $message->setProperties(['key' => 'value']); - - $this->assertSame(['key' => 'value'], $message->getProperties()); - } - - public function testCouldSetGetHeaders() - { - $message = new RedisMessage(); - $message->setHeaders(['key' => 'value']); - - $this->assertSame(['key' => 'value'], $message->getHeaders()); - } - - public function testCouldSetGetRedelivered() + public function testCouldConstructMessageWithoutArguments() { $message = new RedisMessage(); - $message->setRedelivered(true); - $this->assertTrue($message->isRedelivered()); - - $message->setRedelivered(false); - $this->assertFalse($message->isRedelivered()); + $this->assertSame('', $message->getBody()); + $this->assertSame([], $message->getProperties()); + $this->assertSame([], $message->getHeaders()); } - public function testCouldSetGetCorrelationId() + public function testCouldBeConstructedWithOptionalArguments() { - $message = new RedisMessage(); - $message->setCorrelationId('the-correlation-id'); + $message = new RedisMessage('theBody', ['barProp' => 'barPropVal'], ['fooHeader' => 'fooHeaderVal']); - $this->assertSame('the-correlation-id', $message->getCorrelationId()); + $this->assertSame('theBody', $message->getBody()); + $this->assertSame(['barProp' => 'barPropVal'], $message->getProperties()); + $this->assertSame(['fooHeader' => 'fooHeaderVal'], $message->getHeaders()); } public function testShouldSetCorrelationIdAsHeader() @@ -92,14 +40,6 @@ public function testShouldSetCorrelationIdAsHeader() $this->assertSame(['correlation_id' => 'the-correlation-id'], $message->getHeaders()); } - public function testCouldSetGetMessageId() - { - $message = new RedisMessage(); - $message->setMessageId('the-message-id'); - - $this->assertSame('the-message-id', $message->getMessageId()); - } - public function testCouldSetMessageIdAsHeader() { $message = new RedisMessage(); @@ -108,14 +48,6 @@ public function testCouldSetMessageIdAsHeader() $this->assertSame(['message_id' => 'the-message-id'], $message->getHeaders()); } - public function testCouldSetGetTimestamp() - { - $message = new RedisMessage(); - $message->setTimestamp(12345); - - $this->assertSame(12345, $message->getTimestamp()); - } - public function testCouldSetTimestampAsHeader() { $message = new RedisMessage(); @@ -124,22 +56,7 @@ public function testCouldSetTimestampAsHeader() $this->assertSame(['timestamp' => 12345], $message->getHeaders()); } - public function testShouldReturnNullAsDefaultReplyTo() - { - $message = new RedisMessage(); - - $this->assertSame(null, $message->getReplyTo()); - } - - public function testShouldAllowGetPreviouslySetReplyTo() - { - $message = new RedisMessage(); - $message->setReplyTo('theQueueName'); - - $this->assertSame('theQueueName', $message->getReplyTo()); - } - - public function testShouldAllowGetPreviouslySetReplyToAsHeader() + public function testShouldSetReplyToAsHeader() { $message = new RedisMessage(); $message->setReplyTo('theQueueName'); diff --git a/pkg/redis/Tests/RedisProducerTest.php b/pkg/redis/Tests/RedisProducerTest.php index 1616f4ae3..165ee6e0c 100644 --- a/pkg/redis/Tests/RedisProducerTest.php +++ b/pkg/redis/Tests/RedisProducerTest.php @@ -54,7 +54,7 @@ public function testShouldCallLPushOnSend() $redisMock ->expects($this->once()) ->method('lpush') - ->with('aDestination', '{"body":null,"properties":[],"headers":[]}') + ->with('aDestination', '{"body":"","properties":[],"headers":[]}') ; $producer = new RedisProducer($redisMock); diff --git a/pkg/redis/Tests/Spec/RedisMessageTest.php b/pkg/redis/Tests/Spec/RedisMessageTest.php index 6c5dc74d3..b5ad24b49 100644 --- a/pkg/redis/Tests/Spec/RedisMessageTest.php +++ b/pkg/redis/Tests/Spec/RedisMessageTest.php @@ -1,4 +1,5 @@ body = $body; $this->properties = $properties; @@ -185,7 +185,7 @@ public function setCorrelationId($correlationId) */ public function getCorrelationId() { - return $this->getHeader('correlation_id', ''); + return $this->getHeader('correlation_id'); } /** @@ -201,7 +201,7 @@ public function setMessageId($messageId) */ public function getMessageId() { - return $this->getHeader('message_id', ''); + return $this->getHeader('message_id'); } /** @@ -209,7 +209,9 @@ public function getMessageId() */ public function getTimestamp() { - return $this->getHeader('timestamp'); + $value = $this->getHeader('timestamp'); + + return $value === null ? null : (int) $value; } /** @@ -217,7 +219,7 @@ public function getTimestamp() */ public function setTimestamp($timestamp) { - $this->setHeader('timestamp', (int) $timestamp); + $this->setHeader('timestamp', $timestamp); } /** diff --git a/pkg/sqs/Tests/Spec/SqsMessageTest.php b/pkg/sqs/Tests/Spec/SqsMessageTest.php index 7f5427435..9c75ad620 100644 --- a/pkg/sqs/Tests/Spec/SqsMessageTest.php +++ b/pkg/sqs/Tests/Spec/SqsMessageTest.php @@ -1,4 +1,5 @@ assertClassImplements(PsrMessage::class, SqsMessage::class); - } - - public function testCouldConstructMessageWithBody() - { - $message = new SqsMessage('body'); - - $this->assertSame('body', $message->getBody()); - } - - public function testCouldConstructMessageWithProperties() - { - $message = new SqsMessage('', ['key' => 'value']); - - $this->assertSame(['key' => 'value'], $message->getProperties()); - } - - public function testCouldConstructMessageWithHeaders() - { - $message = new SqsMessage('', [], ['key' => 'value']); - - $this->assertSame(['key' => 'value'], $message->getHeaders()); - } - - public function testCouldSetGetBody() - { - $message = new SqsMessage(); - $message->setBody('body'); - - $this->assertSame('body', $message->getBody()); - } - - public function testCouldSetGetProperties() - { - $message = new SqsMessage(); - $message->setProperties(['key' => 'value']); - - $this->assertSame(['key' => 'value'], $message->getProperties()); - } - - public function testCouldSetGetHeaders() - { - $message = new SqsMessage(); - $message->setHeaders(['key' => 'value']); - - $this->assertSame(['key' => 'value'], $message->getHeaders()); - } - - public function testCouldSetGetRedelivered() + public function testCouldBeConstructedWithoutArguments() { $message = new SqsMessage(); - $message->setRedelivered(true); - $this->assertTrue($message->isRedelivered()); - - $message->setRedelivered(false); - $this->assertFalse($message->isRedelivered()); + $this->assertSame('', $message->getBody()); + $this->assertSame([], $message->getProperties()); + $this->assertSame([], $message->getHeaders()); } - public function testCouldSetGetCorrelationId() + public function testCouldBeConstructedWithOptionalArguments() { - $message = new SqsMessage(); - $message->setCorrelationId('the-correlation-id'); + $message = new SqsMessage('theBody', ['barProp' => 'barPropVal'], ['fooHeader' => 'fooHeaderVal']); - $this->assertSame('the-correlation-id', $message->getCorrelationId()); + $this->assertSame('theBody', $message->getBody()); + $this->assertSame(['barProp' => 'barPropVal'], $message->getProperties()); + $this->assertSame(['fooHeader' => 'fooHeaderVal'], $message->getHeaders()); } public function testShouldSetCorrelationIdAsHeader() @@ -87,15 +35,7 @@ public function testShouldSetCorrelationIdAsHeader() $this->assertSame(['correlation_id' => 'the-correlation-id'], $message->getHeaders()); } - public function testCouldSetGetMessageId() - { - $message = new SqsMessage(); - $message->setMessageId('the-message-id'); - - $this->assertSame('the-message-id', $message->getMessageId()); - } - - public function testCouldSetMessageIdAsHeader() + public function testShouldSetMessageIdAsHeader() { $message = new SqsMessage(); $message->setMessageId('the-message-id'); @@ -103,15 +43,7 @@ public function testCouldSetMessageIdAsHeader() $this->assertSame(['message_id' => 'the-message-id'], $message->getHeaders()); } - public function testCouldSetGetTimestamp() - { - $message = new SqsMessage(); - $message->setTimestamp(12345); - - $this->assertSame(12345, $message->getTimestamp()); - } - - public function testCouldSetTimestampAsHeader() + public function testShouldSetTimestampAsHeader() { $message = new SqsMessage(); $message->setTimestamp(12345); @@ -119,22 +51,7 @@ public function testCouldSetTimestampAsHeader() $this->assertSame(['timestamp' => 12345], $message->getHeaders()); } - public function testShouldReturnNullAsDefaultReplyTo() - { - $message = new SqsMessage(); - - $this->assertSame(null, $message->getReplyTo()); - } - - public function testShouldAllowGetPreviouslySetReplyTo() - { - $message = new SqsMessage(); - $message->setReplyTo('theQueueName'); - - $this->assertSame('theQueueName', $message->getReplyTo()); - } - - public function testShouldAllowGetPreviouslySetReplyToAsHeader() + public function testShouldSetReplyToAsHeader() { $message = new SqsMessage(); $message->setReplyTo('theQueueName'); diff --git a/pkg/stomp/StompMessage.php b/pkg/stomp/StompMessage.php index 9fc60e2cc..016cf5bbe 100644 --- a/pkg/stomp/StompMessage.php +++ b/pkg/stomp/StompMessage.php @@ -174,7 +174,7 @@ public function setCorrelationId($correlationId) */ public function getCorrelationId() { - return $this->getHeader('correlation_id', ''); + return $this->getHeader('correlation_id'); } /** @@ -190,7 +190,7 @@ public function setMessageId($messageId) */ public function getMessageId() { - return $this->getHeader('message_id', ''); + return $this->getHeader('message_id'); } /** diff --git a/pkg/stomp/Tests/Spec/StompMessageTest.php b/pkg/stomp/Tests/Spec/StompMessageTest.php index 328359dba..7abdd8072 100644 --- a/pkg/stomp/Tests/Spec/StompMessageTest.php +++ b/pkg/stomp/Tests/Spec/StompMessageTest.php @@ -1,4 +1,5 @@ assertClassImplements(PsrMessage::class, StompMessage::class); - } - - public function testCouldConstructMessageWithBody() - { - $message = new StompMessage('body'); - - $this->assertSame('body', $message->getBody()); - } - - public function testCouldConstructMessageWithProperties() - { - $message = new StompMessage('', ['key' => 'value']); - - $this->assertSame(['key' => 'value'], $message->getProperties()); - } - - public function testCouldConstructMessageWithHeaders() - { - $message = new StompMessage('', [], ['key' => 'value']); - - $this->assertSame(['key' => 'value'], $message->getHeaders()); - } - - public function testCouldSetGetBody() + public function testCouldBeConstructedWithoutArguments() { $message = new StompMessage(); - $message->setBody('body'); - $this->assertSame('body', $message->getBody()); + $this->assertSame('', $message->getBody()); + $this->assertSame([], $message->getProperties()); + $this->assertSame([], $message->getHeaders()); } - public function testCouldSetGetProperties() + public function testCouldBeConstructedWithOptionalArguments() { - $message = new StompMessage(); - $message->setProperties(['key' => 'value']); - - $this->assertSame(['key' => 'value'], $message->getProperties()); - } - - public function testCouldSetGetHeaders() - { - $message = new StompMessage(); - $message->setHeaders(['key' => 'value']); + $message = new StompMessage('theBody', ['barProp' => 'barPropVal'], ['fooHeader' => 'fooHeaderVal']); - $this->assertSame(['key' => 'value'], $message->getHeaders()); + $this->assertSame('theBody', $message->getBody()); + $this->assertSame(['barProp' => 'barPropVal'], $message->getProperties()); + $this->assertSame(['fooHeader' => 'fooHeaderVal'], $message->getHeaders()); } public function testCouldSetGetPersistent() @@ -80,25 +47,6 @@ public function testShouldSetPersistentAsHeader() $this->assertSame(['persistent' => true], $message->getHeaders()); } - public function testCouldSetGetRedelivered() - { - $message = new StompMessage(); - - $message->setRedelivered(true); - $this->assertTrue($message->isRedelivered()); - - $message->setRedelivered(false); - $this->assertFalse($message->isRedelivered()); - } - - public function testCouldSetGetCorrelationId() - { - $message = new StompMessage(); - $message->setCorrelationId('the-correlation-id'); - - $this->assertSame('the-correlation-id', $message->getCorrelationId()); - } - public function testShouldSetCorrelationIdAsHeader() { $message = new StompMessage(); @@ -107,14 +55,6 @@ public function testShouldSetCorrelationIdAsHeader() $this->assertSame(['correlation_id' => 'the-correlation-id'], $message->getHeaders()); } - public function testCouldSetGetMessageId() - { - $message = new StompMessage(); - $message->setMessageId('the-message-id'); - - $this->assertSame('the-message-id', $message->getMessageId()); - } - public function testCouldSetMessageIdAsHeader() { $message = new StompMessage(); @@ -123,14 +63,6 @@ public function testCouldSetMessageIdAsHeader() $this->assertSame(['message_id' => 'the-message-id'], $message->getHeaders()); } - public function testCouldSetGetTimestamp() - { - $message = new StompMessage(); - $message->setTimestamp(12345); - - $this->assertSame(12345, $message->getTimestamp()); - } - public function testCouldSetTimestampAsHeader() { $message = new StompMessage(); @@ -147,22 +79,7 @@ public function testCouldSetGetFrame() $this->assertSame($frame, $message->getFrame()); } - public function testShouldReturnNullAsDefaultReplyTo() - { - $message = new StompMessage(); - - self::assertSame(null, $message->getReplyTo()); - } - - public function testShouldAllowGetPreviouslySetReplyTo() - { - $message = new StompMessage(); - $message->setReplyTo('theQueueName'); - - self::assertSame('theQueueName', $message->getReplyTo()); - } - - public function testShouldAllowGetPreviouslySetReplyToAsHeader() + public function testShouldSetReplyToAsHeader() { $message = new StompMessage(); $message->setReplyTo('theQueueName'); From 7dbc9fde516616a05495429c7f1615f159a91f03 Mon Sep 17 00:00:00 2001 From: Maksim Kotlyar Date: Thu, 25 May 2017 12:54:34 +0300 Subject: [PATCH 4/4] Add body, properties and headers to client's message constructor. fixes https://github.com/php-enqueue/enqueue-dev/issues/88 --- pkg/enqueue/Client/Message.php | 8 +++++--- pkg/enqueue/Tests/Client/MessageTest.php | 17 +++++++++++++++-- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/pkg/enqueue/Client/Message.php b/pkg/enqueue/Client/Message.php index 899cc9928..d58371b38 100644 --- a/pkg/enqueue/Client/Message.php +++ b/pkg/enqueue/Client/Message.php @@ -78,10 +78,12 @@ class Message */ private $properties = []; - public function __construct() + public function __construct($body = '', array $properties = [], array $headers = []) { - $this->headers = []; - $this->properties = []; + $this->body = $body; + $this->headers = $headers; + $this->properties = $properties; + $this->scope = static::SCOPE_MESSAGE_BUS; } diff --git a/pkg/enqueue/Tests/Client/MessageTest.php b/pkg/enqueue/Tests/Client/MessageTest.php index 1558792ae..a9a1d956c 100644 --- a/pkg/enqueue/Tests/Client/MessageTest.php +++ b/pkg/enqueue/Tests/Client/MessageTest.php @@ -7,9 +7,22 @@ class MessageTest extends TestCase { - public function testCouldBeConstructedWithoutAnyArguments() + public function testCouldBeConstructedWithoutArguments() { - new Message(); + $message = new Message(); + + $this->assertSame('', $message->getBody()); + $this->assertSame([], $message->getProperties()); + $this->assertSame([], $message->getHeaders()); + } + + public function testCouldBeConstructedWithOptionalArguments() + { + $message = new Message('theBody', ['barProp' => 'barPropVal'], ['fooHeader' => 'fooHeaderVal']); + + $this->assertSame('theBody', $message->getBody()); + $this->assertSame(['barProp' => 'barPropVal'], $message->getProperties()); + $this->assertSame(['fooHeader' => 'fooHeaderVal'], $message->getHeaders()); } public function testShouldAllowGetPreviouslySetBody()