2
0

MessageEnvelopeTest.php 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <?php
  2. namespace Test\Michel\PQueue;
  3. use DateTimeImmutable;
  4. use Michel\UniTester\TestCase;
  5. use Michel\PQueue\Transport\Envelope;
  6. class MessageEnvelopeTest extends TestCase
  7. {
  8. protected function execute(): void
  9. {
  10. $this->testConstructAndGetters();
  11. $this->testToArrayAndFromArray();
  12. }
  13. public function testConstructAndGetters()
  14. {
  15. $body = 'test_body';
  16. $retry = true;
  17. $attempts = 1;
  18. $availableAt = new DateTimeImmutable();
  19. $lastFailureAt = new DateTimeImmutable();
  20. $errorMessage = 'error';
  21. $envelope = new Envelope(
  22. $body,
  23. $retry,
  24. $attempts,
  25. $availableAt,
  26. $lastFailureAt,
  27. $errorMessage
  28. );
  29. $this->assertEquals($body, $envelope->getBody());
  30. $this->assertEquals($retry, $envelope->isRetry());
  31. $this->assertEquals($attempts, $envelope->getAttempts());
  32. $this->assertEquals($availableAt, $envelope->getAvailableAt());
  33. $this->assertEquals($lastFailureAt, $envelope->getLastFailureAt());
  34. $this->assertEquals($errorMessage, $envelope->getErrorMessage());
  35. }
  36. public function testToArrayAndFromArray()
  37. {
  38. $body = 'test_body';
  39. $retry = true;
  40. $attempts = 2;
  41. $availableAt = new DateTimeImmutable('2023-01-01 10:00:00');
  42. $lastFailureAt = new DateTimeImmutable('2023-01-01 11:00:00');
  43. $errorMessage = 'failure';
  44. $envelope = new Envelope(
  45. $body,
  46. $retry,
  47. $attempts,
  48. $availableAt,
  49. $lastFailureAt,
  50. $errorMessage
  51. );
  52. $array = $envelope->toArray();
  53. $this->assertEquals($body, $array['body']);
  54. $this->assertEquals($retry, $array['retry']);
  55. $this->assertEquals($attempts, $array['attempts']);
  56. $this->assertEquals($availableAt->format('Y-m-d H:i:s'), $array['availableAt']);
  57. $this->assertEquals($lastFailureAt->format('Y-m-d H:i:s'), $array['lastFailureAt']);
  58. $this->assertEquals($errorMessage, $array['errorMessage']);
  59. $newEnvelope = Envelope::fromArray($array);
  60. $this->assertEquals($envelope->getBody(), $newEnvelope->getBody());
  61. $this->assertEquals($envelope->isRetry(), $newEnvelope->isRetry());
  62. $this->assertEquals($envelope->getAttempts(), $newEnvelope->getAttempts());
  63. $this->assertEquals($envelope->getAvailableAt()->getTimestamp(), $newEnvelope->getAvailableAt()->getTimestamp());
  64. $this->assertEquals($envelope->getLastFailureAt()->getTimestamp(), $newEnvelope->getLastFailureAt()->getTimestamp());
  65. $this->assertEquals($envelope->getErrorMessage(), $newEnvelope->getErrorMessage());
  66. }
  67. protected function setUp(): void
  68. {
  69. // TODO: Implement setUp() method.
  70. }
  71. protected function tearDown(): void
  72. {
  73. // TODO: Implement tearDown() method.
  74. }
  75. }