package Ġio . mic ronaut . rabbitmq . docs . quickstart Ċ Ċ import Ġio . kot est . assertions . timing . event ually Ċ import Ġio . kot est . matchers . shouldBe Ċ import Ġio . mic ronaut . rabbitmq . Abstract Rabbit MQ Test Ċ import Ġkotlin . time . Duration Ċ import Ġkotlin . time . Experimental Time Ċ Ċ @ Opt In ( Experimental Time :: class ) Ċ class ĠQuick start Spec : ĠAbstract Rabbit MQ Test ({ ĊĊĠĠĠ Ġval Ġspec Name Ġ= Ġjava Class . simple Name ĊĊĠĠĠ Ġgiven (" A Ġbasic Ġproducer Ġand Ġconsumer ") Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġctx Ġ= Ġstart Context ( spec Name ) ĊĊĠĠĠĠĠĠĠ Ġ` when ` (" the Ġmessage Ġis Ġpublished ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġproduct Listener Ġ= Ġctx . getBean ( Product Listener :: class . java ) Ċ Ċ // Ġtag :: producer [] Ċ val Ġproduct Client Ġ= Ġctx . getBean ( Product Client :: class . java ) Ċ product Client . send (" quickstart ". toByteArray ()) Ċ // Ġend :: producer [] ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġthen (" the Ġmessage Ġis Ġconsumed ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġeventually ( Duration . seconds ( 1 0 )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproduct Listener . message Lengths . size ĠshouldBe Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproduct Listener . message Lengths [ 0 ] ĠshouldBe Ġ" quickstart " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠThread . sleep ( 1 0 0 0 ) ĊĠĠĠĠĠĠĠ Ġctx . stop () ĊĠĠĠ Ġ} Ċ Ċ }) Ċ