@@ -59,6 +59,7 @@ groups() ->
5959 declare_queue_inequivalent_fields ,
6060 declare_queue_inequivalent_exclusive ,
6161 declare_queue_invalid_field ,
62+ declare_queue_invalid_arg ,
6263 declare_default_exchange ,
6364 declare_exchange_amq_prefix ,
6465 declare_exchange_line_feed ,
@@ -528,6 +529,20 @@ declare_queue_invalid_field(Config) ->
528529 amqp10_msg :body (Resp )),
529530 ok = cleanup (Init ).
530531
532+ declare_queue_invalid_arg (Config ) ->
533+ Init = {_ , LinkPair } = init (Config ),
534+ QName = <<" 👌" /utf8 >>,
535+ QProps = #{arguments => #{<<" x-queue-type" >> => {utf8 , <<" stream" >>},
536+ <<" x-dead-letter-exchange" >> => {utf8 , <<" dlx is invalid for stream" >>}}},
537+ {error , Resp } = rabbitmq_amqp_client :declare_queue (LinkPair , QName , QProps ),
538+ ? assertMatch (#{subject := <<" 409" >>}, amqp10_msg :properties (Resp )),
539+ ? assertEqual (
540+ # 'v1_0.amqp_value' {
541+ content = {utf8 , <<" invalid arg 'x-dead-letter-exchange' for queue '" , QName /binary ,
542+ " ' in vhost '/' of queue type rabbit_stream_queue" >>}},
543+ amqp10_msg :body (Resp )),
544+ ok = cleanup (Init ).
545+
531546declare_default_exchange (Config ) ->
532547 Init = {_ , LinkPair } = init (Config ),
533548 {error , Resp } = rabbitmq_amqp_client :declare_exchange (LinkPair , ? DEFAULT_EXCHANGE , #{}),
0 commit comments