13
13
#[ macro_use]
14
14
extern crate lazy_static;
15
15
16
+ use std:: cmp:: Ordering ;
16
17
use std:: collections:: HashMap ;
17
18
use std:: str:: FromStr ;
18
19
@@ -32,7 +33,7 @@ use bitcoin::{
32
33
Sequence , SignedAmount , Transaction , TxIn , TxOut , Txid , Witness ,
33
34
} ;
34
35
use bitcoincore_rpc:: bitcoincore_rpc_json:: {
35
- GetBlockTemplateModes , GetBlockTemplateRules , ScanTxOutRequest ,
36
+ GetBlockTemplateModes , GetBlockTemplateRules , ScanTxOutRequest , GetZmqNotificationsResult ,
36
37
} ;
37
38
38
39
lazy_static ! {
@@ -1322,10 +1323,32 @@ fn test_get_index_info(cl: &Client) {
1322
1323
}
1323
1324
1324
1325
fn test_get_zmq_notifications ( cl : & Client ) {
1325
- let zmq_info = cl. get_zmq_notifications ( ) . unwrap ( ) ;
1326
+ let mut zmq_info = cl. get_zmq_notifications ( ) . unwrap ( ) ;
1327
+
1328
+ // it doesn't matter in which order Bitcoin Core returns the result,
1329
+ // but checking it is easier if it has a known order
1330
+ zmq_info. sort_by ( |a, b| {
1331
+ if a. address < b. address {
1332
+ Ordering :: Less
1333
+ } else if a. address == b. address {
1334
+ Ordering :: Equal
1335
+ } else {
1336
+ Ordering :: Greater
1337
+ }
1338
+ } ) ;
1326
1339
1327
- // no zmq subscribers are configured
1328
- assert ! ( zmq_info. is_empty( ) ) ;
1340
+ assert ! ( zmq_info == vec![
1341
+ GetZmqNotificationsResult {
1342
+ notification_type: "pubrawblock" . to_owned( ) ,
1343
+ address: "tcp://0.0.0.0:28332" . to_owned( ) ,
1344
+ hwm: 1000
1345
+ } ,
1346
+ GetZmqNotificationsResult {
1347
+ notification_type: "pubrawtx" . to_owned( ) ,
1348
+ address: "tcp://0.0.0.0:28333" . to_owned( ) ,
1349
+ hwm: 1000
1350
+ } ,
1351
+ ] ) ;
1329
1352
}
1330
1353
1331
1354
fn test_stop ( cl : Client ) {
0 commit comments