44
44
import org .junit .jupiter .api .*;
45
45
import org .junit .jupiter .api .extension .ExtendWith ;
46
46
import org .junit .jupiter .params .ParameterizedTest ;
47
+ import org .junit .jupiter .params .provider .CsvSource ;
47
48
import org .junit .jupiter .params .provider .ValueSource ;
48
49
49
50
@ ExtendWith (AmqpTestInfrastructureExtension .class )
@@ -79,8 +80,9 @@ void queueInfoTest() {
79
80
}
80
81
}
81
82
82
- @ Test
83
- void queueDeclareDeletePublishConsume () {
83
+ @ ParameterizedTest
84
+ @ ValueSource (strings = {"foobar" , "фообар" })
85
+ void queueDeclareDeletePublishConsume (String subject ) {
84
86
try {
85
87
connection .management ().queue ().name (name ).quorum ().queue ().declare ();
86
88
Publisher publisher = connection .publisherBuilder ().queue (name ).build ();
@@ -92,7 +94,10 @@ void queueDeclareDeletePublishConsume() {
92
94
ignored -> {
93
95
UUID messageId = UUID .randomUUID ();
94
96
publisher .publish (
95
- publisher .message ("hello" .getBytes (UTF_8 )).messageId (messageId ),
97
+ publisher
98
+ .message ("hello" .getBytes (UTF_8 ))
99
+ .messageId (messageId )
100
+ .subject (subject ),
96
101
acceptedCallback (confirmSync ));
97
102
});
98
103
@@ -101,18 +106,21 @@ void queueDeclareDeletePublishConsume() {
101
106
Management .QueueInfo queueInfo = connection .management ().queueInfo (name );
102
107
assertThat (queueInfo ).hasName (name ).hasNoConsumers ().hasMessageCount (messageCount );
103
108
109
+ AtomicReference <String > receivedSubject = new AtomicReference <>();
104
110
CountDownLatch consumeLatch = new CountDownLatch (messageCount );
105
111
com .rabbitmq .client .amqp .Consumer consumer =
106
112
connection
107
113
.consumerBuilder ()
108
114
.queue (name )
109
115
.messageHandler (
110
116
(context , message ) -> {
117
+ receivedSubject .set (message .subject ());
111
118
context .accept ();
112
119
consumeLatch .countDown ();
113
120
})
114
121
.build ();
115
122
Assertions .assertThat (consumeLatch ).is (completed ());
123
+ assertThat (receivedSubject ).doesNotHaveNullValue ().hasValue (subject );
116
124
117
125
queueInfo = connection .management ().queueInfo (name );
118
126
assertThat (queueInfo ).hasConsumerCount (1 ).isEmpty ();
@@ -125,12 +133,17 @@ void queueDeclareDeletePublishConsume() {
125
133
}
126
134
127
135
@ ParameterizedTest
128
- @ ValueSource (booleans = {false , true })
129
- void binding (boolean addBindingArguments , TestInfo info ) {
130
- String e1 = TestUtils .name (info );
131
- String e2 = TestUtils .name (info );
132
- String q = TestUtils .name (info );
133
- String rk = "foo" ;
136
+ @ CsvSource ({
137
+ "foo,false" ,
138
+ "foo,true" ,
139
+ "фообар,true" ,
140
+ "фообар,false" ,
141
+ })
142
+ void binding (String prefix , boolean addBindingArguments , TestInfo info ) {
143
+ String e1 = prefix + "-" + TestUtils .name (info );
144
+ String e2 = prefix + "-" + TestUtils .name (info );
145
+ String q = prefix + "-" + TestUtils .name (info );
146
+ String rk = prefix + "-" + "foo" ;
134
147
Map <String , Object > bindingArguments =
135
148
addBindingArguments ? singletonMap ("foo" , "bar" ) : emptyMap ();
136
149
Management management = connection .management ();
0 commit comments