@@ -53,10 +53,7 @@ async fn with_filled_db<Func: Fn(Arc<dyn DatabaseClient>) -> Fut, Fut: Future<Ou
5353#[ tokio:: test]
5454async fn test_get_blocks ( ) {
5555 with_filled_db ( |db_client| async {
56- let ( port, handle) = new_server ( db_client) . await ;
57-
58- let http_client =
59- EthJsonRpcClient :: new ( ReqwestClient :: new ( format ! ( "http://127.0.0.1:{port}" ) ) ) ;
56+ let ( http_client, _port, handle) = new_server ( db_client) . await ;
6057
6158 let block_count = http_client. get_block_number ( ) . await . unwrap ( ) ;
6259 assert_eq ! ( block_count, BLOCK_COUNT - 1 ) ;
@@ -88,9 +85,10 @@ async fn test_get_blocks() {
8885#[ tokio:: test]
8986async fn test_get_blocks_rlp ( ) {
9087 with_filled_db ( |db_client| async {
91- let ( port, handle) = new_server ( db_client) . await ;
88+ let ( _http_client , port, handle) = new_server ( db_client) . await ;
9289
9390 let http_client = ReqwestClient :: new ( format ! ( "http://127.0.0.1:{port}" ) ) ;
91+
9492 // Test first five blocks
9593 let request = Request :: Single ( Call :: MethodCall ( MethodCall {
9694 jsonrpc : Some ( Version :: V2 ) ,
@@ -144,7 +142,7 @@ async fn test_get_blocks_rlp() {
144142#[ tokio:: test]
145143async fn test_batched_request ( ) {
146144 with_filled_db ( |db_client| async {
147- let ( port, handle) = new_server ( db_client) . await ;
145+ let ( _http_client , port, handle) = new_server ( db_client) . await ;
148146
149147 let http_client = ReqwestClient :: new ( format ! ( "http://127.0.0.1:{port}" ) ) ;
150148 let request = Request :: Batch ( vec ! [
@@ -196,10 +194,7 @@ async fn test_get_genesis_accounts() {
196194 // Arrange
197195 db_client. init ( None , false ) . await . unwrap ( ) ;
198196
199- let ( port, handle) = new_server ( db_client. clone ( ) ) . await ;
200-
201- let http_client =
202- EthJsonRpcClient :: new ( ReqwestClient :: new ( format ! ( "http://127.0.0.1:{port}" ) ) ) ;
197+ let ( http_client, _port, handle) = new_server ( db_client. clone ( ) ) . await ;
203198
204199 // Test on empty database
205200 {
@@ -257,10 +252,7 @@ async fn test_get_chain_id() {
257252 // Arrange
258253 db_client. init ( None , false ) . await . unwrap ( ) ;
259254
260- let ( port, handle) = new_server ( db_client. clone ( ) ) . await ;
261-
262- let http_client =
263- EthJsonRpcClient :: new ( ReqwestClient :: new ( format ! ( "http://127.0.0.1:{port}" ) ) ) ;
255+ let ( http_client, _port, handle) = new_server ( db_client. clone ( ) ) . await ;
264256
265257 let chain_id: u64 = random ( ) ;
266258 db_client. insert_chain_id ( chain_id) . await . unwrap ( ) ;
@@ -282,7 +274,7 @@ async fn test_get_chain_id() {
282274#[ tokio:: test]
283275async fn test_get_block_by_number_variants ( ) {
284276 with_filled_db ( |db_client| async {
285- let ( port, handle) = new_server ( db_client) . await ;
277+ let ( _http_client , port, handle) = new_server ( db_client) . await ;
286278
287279 let http_client = ReqwestClient :: new ( format ! ( "http://127.0.0.1:{port}" ) ) ;
288280 let request = Request :: Batch ( vec ! [
@@ -360,29 +352,15 @@ async fn test_get_last_certified_block() {
360352 . await
361353 . unwrap ( ) ;
362354
363- let ( port, handle) = new_server ( db_client. clone ( ) ) . await ;
364-
365- let http_client = ReqwestClient :: new ( format ! ( "http://127.0.0.1:{port}" ) ) ;
355+ let ( http_client, _port, handle) = new_server ( db_client. clone ( ) ) . await ;
366356
367357 // Act
368- let request = Request :: Single ( Call :: MethodCall ( MethodCall {
369- jsonrpc : Some ( Version :: V2 ) ,
370- method : "ic_getLastBlockCertifiedData" . to_string ( ) ,
371- params : Params :: Array ( vec ! [ ] ) ,
372- id : Id :: Null ,
373- } ) ) ;
374-
375- let Response :: Single ( Output :: Success ( result) ) =
376- http_client. send_rpc_request ( request) . await . unwrap ( )
377- else {
378- panic ! ( "unexpected return type" )
379- } ;
358+ let certified_block = http_client. get_last_certified_block ( ) . await . unwrap ( ) ;
380359
381360 // Assert
382- let certified_block: CertifiedBlock = serde_json:: from_value ( result. result ) . unwrap ( ) ;
383361 assert_eq ! ( certified_block. certificate, vec![ 1 , 2 , 3 ] ) ;
384362 assert_eq ! ( certified_block. witness, vec![ 5 , 6 , 7 ] ) ;
385- assert_eq ! ( certified_block. data, block) ;
363+ assert_eq ! ( certified_block. data, block. into ( ) ) ;
386364
387365 {
388366 handle. stop ( ) . unwrap ( ) ;
@@ -392,7 +370,9 @@ async fn test_get_last_certified_block() {
392370 . await
393371}
394372
395- async fn new_server ( db_client : Arc < dyn DatabaseClient > ) -> ( u16 , ServerHandle ) {
373+ async fn new_server (
374+ db_client : Arc < dyn DatabaseClient > ,
375+ ) -> ( EthJsonRpcClient < ReqwestClient > , u16 , ServerHandle ) {
396376 let eth = EthImpl :: new ( db_client) ;
397377 let mut module = RpcModule :: new ( ( ) ) ;
398378 module. merge ( EthServer :: into_rpc ( eth. clone ( ) ) ) . unwrap ( ) ;
@@ -401,7 +381,9 @@ async fn new_server(db_client: Arc<dyn DatabaseClient>) -> (u16, ServerHandle) {
401381 loop {
402382 let port = port_check:: free_local_port ( ) . unwrap ( ) ;
403383 if let Ok ( server) = Server :: builder ( ) . build ( format ! ( "0.0.0.0:{port}" ) ) . await {
404- return ( port, server. start ( module) ) ;
384+ let client =
385+ EthJsonRpcClient :: new ( ReqwestClient :: new ( format ! ( "http://127.0.0.1:{port}" ) ) ) ;
386+ return ( client, port, server. start ( module) ) ;
405387 }
406388 }
407389}
0 commit comments