|
17 | 17 |
|
18 | 18 | namespace OpenCloud\Smoke\Unit; |
19 | 19 |
|
| 20 | +use OpenCloud\Queues\Resource\Queue; |
| 21 | + |
20 | 22 | class Queues extends AbstractUnit implements UnitInterface |
21 | 23 | { |
22 | 24 | const QUEUE_NAME = 'test_queue'; |
@@ -71,33 +73,45 @@ public function doMessageBlock() |
71 | 73 | $this->step('Messages'); |
72 | 74 |
|
73 | 75 | // post |
| 76 | + $numMessagesCreated = 0; |
74 | 77 | $this->stepInfo('Create messages for queue %s', $this->queue->getName()); |
75 | 78 | $this->queue->createMessage(array( |
76 | 79 | 'body' => (object) array( |
77 | 80 | 'instructions' => 'Do it now!' |
78 | 81 | ), |
79 | 82 | 'ttl' => 300 |
80 | 83 | )); |
| 84 | + ++$numMessagesCreated; |
| 85 | + |
| 86 | + for ($creationBatch = 0; $creationBatch < 3; ++$creationBatch) { |
| 87 | + $messages = array(); |
| 88 | + for ($messageIndex = 0; $messageIndex < Queue::MAX_POST_MESSAGES; ++$messageIndex) { |
| 89 | + $messages[] = array( |
| 90 | + 'body' => (object) array('message_number' => ($creationBatch * Queue::MAX_POST_MESSAGES) + $messageIndex + 1), |
| 91 | + 'ttl' => mt_rand(300, 600) |
| 92 | + ); |
| 93 | + ++$numMessagesCreated; |
| 94 | + } |
| 95 | + $this->queue->createMessages($messages); |
| 96 | + } |
81 | 97 |
|
82 | | - $this->queue->createMessages(array( |
83 | | - array( |
84 | | - 'body' => (object) array('foo' => 'bar'), |
85 | | - 'ttl' => 700 |
86 | | - ), |
87 | | - array( |
88 | | - 'body' => (object) array('baz' => 'lol'), |
89 | | - 'ttl' => 600 |
90 | | - ) |
91 | | - )); |
92 | | - |
93 | | - // list |
| 98 | + // list ( 'echo' => true is needed to list client's own messages) |
94 | 99 | $step = $this->stepInfo('List messages for queue %s', $this->queue->getName()); |
95 | | - $messages = $this->queue->listMessages(); |
| 100 | + $messages = $this->queue->listMessages(array( |
| 101 | + 'echo' => true |
| 102 | + )); |
96 | 103 | $ids = array(); |
| 104 | + $numMessagesListed = 0; |
| 105 | + $step->stepInfo("%-30s | %-40s", "Message ID", "Message body"); |
| 106 | + $step->stepInfo("%-30s | %-40s", str_repeat("-", 30), str_repeat("-", 40)); |
97 | 107 | foreach ($messages as $message) { |
98 | | - $step->stepInfo($message->getId()); |
| 108 | + $step->stepInfo("%-30s | %-40s", $message->getId(), json_encode($message->getBody())); |
99 | 109 | $ids[] = $message->getId(); |
| 110 | + ++$numMessagesListed; |
100 | 111 | } |
| 112 | + $this->stepInfo("Number of messages to be listed: " . $numMessagesCreated); |
| 113 | + $this->stepInfo("Number of messages actually listed: " . $numMessagesListed); |
| 114 | + $this->assertEquals($numMessagesCreated, $numMessagesListed); |
101 | 115 |
|
102 | 116 | array_pop($ids); |
103 | 117 | } |
|
0 commit comments