@@ -27,7 +27,8 @@ groups() ->
27
27
autodelete_amqp091_dest_on_confirm ,
28
28
autodelete_amqp091_dest_on_publish ,
29
29
simple_amqp10_dest ,
30
- simple_amqp10_src
30
+ simple_amqp10_src ,
31
+ amqp091_to_amqp10_with_dead_lettering
31
32
]},
32
33
{with_map_config , [], [
33
34
simple ,
@@ -96,6 +97,29 @@ simple_amqp10_dest(Config) ->
96
97
<<" src-queue" >>)
97
98
end ).
98
99
100
+ amqp091_to_amqp10_with_dead_lettering (Config ) ->
101
+ Dest = ? config (destq , Config ),
102
+ Src = ? config (srcq , Config ),
103
+ TmpQ = <<" tmp" >>,
104
+ with_session (Config ,
105
+ fun (Sess ) ->
106
+ {ok , LinkPair } = rabbitmq_amqp_client :attach_management_link_pair_sync (Sess , <<" my link pair" >>),
107
+ {ok , _ } = rabbitmq_amqp_client :declare_queue (LinkPair , TmpQ ,
108
+ #{arguments => #{<<" x-max-length" >> => {uint , 0 },
109
+ <<" x-dead-letter-exchange" >> => {utf8 , <<" " >>},
110
+ <<" x-dead-letter-routing-key" >> => {utf8 , Src }}}),
111
+ {ok , Sender } = amqp10_client :attach_sender_link (Sess ,
112
+ <<" sender-tmp" >>,
113
+ <<" /queues/" , TmpQ /binary >>,
114
+ unsettled ,
115
+ unsettled_state ),
116
+ ok = await_amqp10_event (link , Sender , attached ),
117
+ expect_empty (Sess , TmpQ ),
118
+ test_amqp10_destination (Config , Src , Dest , Sess , <<" amqp091" >>, <<" src-queue" >>),
119
+ % % publish to tmp, it should be dead-lettered to src and then shovelled to dest
120
+ _ = publish_expect (Sess , TmpQ , Dest , <<" tag1" >>, <<" hello" >>)
121
+ end ).
122
+
99
123
test_amqp10_destination (Config , Src , Dest , Sess , Protocol , ProtocolSrc ) ->
100
124
MapConfig = ? config (map_config , Config ),
101
125
shovel_test_utils :set_param (Config , <<" test" >>,
0 commit comments