@@ -3,7 +3,6 @@ use std::time::Duration;
3
3
use crate :: common:: TestEnvironment ;
4
4
use fake:: { Fake , Faker } ;
5
5
use futures:: StreamExt ;
6
- use tokio:: task;
7
6
use rabbitmq_stream_client:: {
8
7
error:: {
9
8
ClientError , ConsumerCloseError , ConsumerDeliveryError , ConsumerStoreOffsetError ,
@@ -12,11 +11,12 @@ use rabbitmq_stream_client::{
12
11
types:: { Delivery , Message , OffsetSpecification , SuperStreamConsumer } ,
13
12
Consumer , FilterConfiguration , NoDedup , Producer ,
14
13
} ;
14
+ use tokio:: task;
15
15
16
+ use rabbitmq_stream_client:: types:: { HashRoutingMurmurStrategy , RoutingStrategy } ;
16
17
use rabbitmq_stream_protocol:: ResponseCode ;
17
- use std:: sync:: Arc ;
18
18
use std:: sync:: atomic:: { AtomicU32 , Ordering } ;
19
- use rabbitmq_stream_client :: types :: { HashRoutingMurmurStrategy , RoutingStrategy } ;
19
+ use std :: sync :: Arc ;
20
20
21
21
#[ tokio:: test( flavor = "multi_thread" ) ]
22
22
async fn consumer_test ( ) {
@@ -79,13 +79,14 @@ async fn super_stream_consumer_test() {
79
79
. await
80
80
. unwrap ( ) ;
81
81
82
- static super_stream_consumer: SuperStreamConsumer = env
83
- . env
84
- . super_stream_consumer ( )
85
- . offset ( OffsetSpecification :: Next )
86
- . build ( & env. stream )
87
- . await
88
- . unwrap ( ) ;
82
+ let super_stream_consumer: Arc < SuperStreamConsumer > = Arc :: new (
83
+ env. env
84
+ . super_stream_consumer ( )
85
+ //.offset(OffsetSpecification::Next)
86
+ . build ( & env. stream )
87
+ . await
88
+ . unwrap ( ) ,
89
+ ) ;
89
90
90
91
for n in 0 ..message_count {
91
92
let msg = Message :: builder ( ) . body ( format ! ( "message{}" , n) ) . build ( ) ;
@@ -97,22 +98,19 @@ async fn super_stream_consumer_test() {
97
98
. unwrap ( ) ;
98
99
}
99
100
100
-
101
101
let received_messages = Arc :: new ( AtomicU32 :: new ( 0 ) ) ;
102
- let consumers = super_stream_consumer. get_consumers ( ) . await ;
103
102
104
103
let mut tasks = Vec :: new ( ) ;
105
- for mut consumer in consumers. into_iter ( ) {
106
- let received_messages_outer = received_messages. clone ( ) ;
107
- tasks. push ( task:: spawn ( async move {
108
- let inner_received_messages = received_messages_outer. clone ( ) ;
109
- let delivery = consumer. next ( ) . await . unwrap ( ) ;
110
- let _ = String :: from_utf8 ( delivery. unwrap ( ) . message ( ) . data ( ) . unwrap ( ) . to_vec ( ) ) . unwrap ( ) ;
111
- inner_received_messages. fetch_add ( 1 , Ordering :: Relaxed ) ;
112
-
113
- } ) ) ;
114
- }
115
-
104
+ for mut consumer in super_stream_consumer. get_consumers ( ) . await . into_iter ( ) {
105
+ let received_messages_outer = received_messages. clone ( ) ;
106
+ tasks. push ( task:: spawn ( async move {
107
+ let inner_received_messages = received_messages_outer. clone ( ) ;
108
+ let delivery = consumer. next ( ) . await . unwrap ( ) ;
109
+ let _ =
110
+ String :: from_utf8 ( delivery. unwrap ( ) . message ( ) . data ( ) . unwrap ( ) . to_vec ( ) ) . unwrap ( ) ;
111
+ inner_received_messages. fetch_add ( 1 , Ordering :: Relaxed ) ;
112
+ } ) ) ;
113
+ }
116
114
futures:: future:: join_all ( tasks) . await ;
117
115
118
116
assert ! ( received_messages. fetch_add( 1 , Ordering :: Relaxed ) == message_count) ;
@@ -398,7 +396,7 @@ async fn consumer_test_with_store_offset() {
398
396
// Store an offset
399
397
if i == offset_to_store {
400
398
//Store the 5th element produced
401
- let result = consumer_store
399
+ let _ = consumer_store
402
400
. store_offset ( delivery. unwrap ( ) . offset ( ) )
403
401
. await ;
404
402
}
0 commit comments