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 , GetZmqNotificationsResult , ScanTxOutRequest ,
36
37
} ;
37
38
38
39
lazy_static ! {
@@ -226,6 +227,7 @@ fn main() {
226
227
test_add_ban ( & cl) ;
227
228
test_set_network_active ( & cl) ;
228
229
test_get_index_info ( & cl) ;
230
+ test_get_zmq_notifications ( & cl) ;
229
231
test_stop ( cl) ;
230
232
}
231
233
@@ -1422,6 +1424,38 @@ fn test_get_index_info(cl: &Client) {
1422
1424
}
1423
1425
}
1424
1426
1427
+ fn test_get_zmq_notifications ( cl : & Client ) {
1428
+ let mut zmq_info = cl. get_zmq_notifications ( ) . unwrap ( ) ;
1429
+
1430
+ // it doesn't matter in which order Bitcoin Core returns the result,
1431
+ // but checking it is easier if it has a known order
1432
+ zmq_info. sort_by ( |a, b| {
1433
+ if a. address < b. address {
1434
+ Ordering :: Less
1435
+ } else if a. address == b. address {
1436
+ Ordering :: Equal
1437
+ } else {
1438
+ Ordering :: Greater
1439
+ }
1440
+ } ) ;
1441
+
1442
+ assert ! (
1443
+ zmq_info
1444
+ == vec![
1445
+ GetZmqNotificationsResult {
1446
+ notification_type: "pubrawblock" . to_owned( ) ,
1447
+ address: "tcp://0.0.0.0:28332" . to_owned( ) ,
1448
+ hwm: 1000
1449
+ } ,
1450
+ GetZmqNotificationsResult {
1451
+ notification_type: "pubrawtx" . to_owned( ) ,
1452
+ address: "tcp://0.0.0.0:28333" . to_owned( ) ,
1453
+ hwm: 1000
1454
+ } ,
1455
+ ]
1456
+ ) ;
1457
+ }
1458
+
1425
1459
fn test_stop ( cl : Client ) {
1426
1460
println ! ( "Stopping: '{}'" , cl. stop( ) . unwrap( ) ) ;
1427
1461
}
0 commit comments