9
9
10
10
use Magento \Catalog \Api \Data \ProductAttributeInterface ;
11
11
use Magento \Framework \App \Request \Http ;
12
+ use Magento \Framework \MessageQueue \DefaultValueProvider ;
13
+ use Magento \Framework \MessageQueue \Envelope ;
14
+ use Magento \Framework \MessageQueue \QueueRepository ;
12
15
use Magento \Framework \Serialize \SerializerInterface ;
13
- use Magento \MysqlMq \Model \QueueManagement ;
14
- use Magento \MysqlMq \Model \ResourceModel \Message ;
15
16
use Magento \TestFramework \MysqlMq \DeleteTopicRelatedMessages ;
16
17
use Magento \TestFramework \TestCase \AbstractBackendController ;
17
18
@@ -27,30 +28,33 @@ class ExportTest extends AbstractBackendController
27
28
{
28
29
private const TOPIC_NAME = 'import_export.export ' ;
29
30
30
- /** @var QueueManagement */
31
- private $ queueManagement ;
32
-
33
- /** @var Message */
34
- private $ queueMessageResource ;
35
-
36
31
/** @var SerializerInterface */
37
32
private $ json ;
38
33
39
34
/** @var DeleteTopicRelatedMessages */
40
35
private $ deleteTopicRelatedMessages ;
41
36
37
+ /**
38
+ * @var QueueRepository
39
+ */
40
+ private $ queueRepository ;
41
+
42
+ /**
43
+ * @var DefaultValueProvider
44
+ */
45
+ private $ defaultValueProvider ;
46
+
42
47
/**
43
48
* @inheridoc
44
49
*/
45
50
protected function setUp (): void
46
51
{
47
52
parent ::setUp ();
48
-
49
- $ this ->queueManagement = $ this ->_objectManager ->get (QueueManagement::class);
50
- $ this ->queueMessageResource = $ this ->_objectManager ->get (Message::class);
51
53
$ this ->json = $ this ->_objectManager ->get (SerializerInterface::class);
52
54
$ this ->deleteTopicRelatedMessages = $ this ->_objectManager ->get (DeleteTopicRelatedMessages::class);
53
55
$ this ->deleteTopicRelatedMessages ->execute (self ::TOPIC_NAME );
56
+ $ this ->queueRepository = $ this ->_objectManager ->get (QueueRepository::class);
57
+ $ this ->defaultValueProvider = $ this ->_objectManager ->get (DefaultValueProvider::class);
54
58
}
55
59
56
60
/**
@@ -85,11 +89,11 @@ public function testExecute(): void
85
89
$ this ->dispatch ('backend/admin/export/export ' );
86
90
$ this ->assertSessionMessages ($ this ->containsEqual ($ expectedSessionMessage ));
87
91
$ this ->assertRedirect ($ this ->stringContains ('/export/index/key/ ' ));
88
- $ messages = $ this ->queueManagement -> readMessages ( 'export ' );
89
- $ this -> assertCount ( 1 , $ messages );
90
- $ message = reset ( $ messages );
91
- $ this ->assertEquals (self ::TOPIC_NAME , $ message[QueueManagement:: MESSAGE_TOPIC ]);
92
- $ body = $ this ->json ->unserialize ($ message[QueueManagement:: MESSAGE_BODY ] );
92
+ $ queue = $ this ->queueRepository -> get ( $ this -> defaultValueProvider -> getConnection (), 'export ' );
93
+ /** @var Envelope $message */
94
+ $ message = $ queue -> dequeue ( );
95
+ $ this ->assertEquals (self ::TOPIC_NAME , $ message-> getProperties ()[ ' topic_name ' ]);
96
+ $ body = $ this ->json ->unserialize ($ message-> getBody () );
93
97
$ this ->assertStringContainsString (ProductAttributeInterface::ENTITY_TYPE_CODE , $ body ['file_name ' ]);
94
98
$ this ->assertEquals ($ fileFormat , $ body ['file_format ' ]);
95
99
$ actualFilter = $ this ->json ->unserialize ($ body ['export_filter ' ]);
0 commit comments