Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
WildcardTopicTest.php
Go to the documentation of this file.
1 <?php
7 
9 
11 {
15  protected $consumers = [
16  'wildcard.queue.one.consumer',
17  'wildcard.queue.two.consumer',
18  'wildcard.queue.three.consumer',
19  'wildcard.queue.four.consumer',
20  ];
21 
29  public function testWildCardMatchingTopic($topic, $matchingQueues, $nonMatchingQueues)
30  {
31  $testObject = $this->generateTestObject();
32  $this->publisher->publish($topic, $testObject);
33 
34  $this->waitForAsynchronousResult(count($matchingQueues), $this->logFilePath);
35 
36  $this->assertTrue(file_exists($this->logFilePath), "No handlers invoked (log file was not created).");
37  foreach ($nonMatchingQueues as $queueName) {
38  $this->assertNotContains($queueName, file_get_contents($this->logFilePath));
39  }
40  foreach ($matchingQueues as $queueName) {
41  $this->assertContains($queueName, file_get_contents($this->logFilePath));
42  }
43  }
44 
45  public function wildCardTopicsDataProvider()
46  {
47  return [
48  'segment1.segment2.segment3.wildcard' => [
49  'segment1.segment2.segment3.wildcard',
50  ['wildcard.queue.one', 'wildcard.queue.two', 'wildcard.queue.four'],
51  ['wildcard.queue.three']
52  ],
53  'segment2.segment3.wildcard' => [
54  'segment2.segment3.wildcard',
55  ['wildcard.queue.one', 'wildcard.queue.three', 'wildcard.queue.four'],
56  ['wildcard.queue.two']
57  ]
58  ];
59  }
60 
61  public function testWildCardNonMatchingTopic()
62  {
63  $testObject = $this->generateTestObject();
64  $this->publisher->publish('not.matching.wildcard.topic', $testObject);
65  sleep(2);
66  $this->assertFalse(file_exists($this->logFilePath), "No log file must be created for non-matching topic.");
67  }
68 
72  private function generateTestObject()
73  {
74  $testObject = $this->objectManager->create(AsyncTestData::class);
75  $testObject->setValue('||Message Contents||');
76  $testObject->setTextFilePath($this->logFilePath);
77  return $testObject;
78  }
79 }
testWildCardMatchingTopic($topic, $matchingQueues, $nonMatchingQueues)