use anyhow::Error; use deribit::{ models::{GetTimeRequest, HelloRequest, TestRequest}, Deribit, }; use fehler::throws; use tokio::runtime::Runtime; #[test] #[throws(Error)] fn hello() { let drb = Deribit::new(); let rt = Runtime::new().expect("cannot create tokio runtime"); let fut = async { let (mut client, _) = drb.connect().await?; let req = HelloRequest { client_name: "deribit-rs".into(), client_version: "0.0.1".into(), }; let _ = client.call(req).await?.await?; Ok::<_, Error>(()) }; rt.block_on(fut)?; } #[test] #[throws(Error)] fn get_time() { let drb = Deribit::new(); let rt = Runtime::new().expect("cannot create tokio runtime"); let fut = async { let (mut client, _) = drb.connect().await?; let _ = client.call(GetTimeRequest).await?.await; Ok::<_, Error>(()) }; rt.block_on(fut)?; } #[test] #[throws(Error)] fn test() { let drb = Deribit::new(); let rt = Runtime::new().expect("cannot create tokio runtime"); let fut = async { let (mut client, _) = drb.connect().await?; let req = TestRequest { expected_result: Some("exception".into()), }; Ok::<_, Error>(client.call(req).await?.await?) }; assert!(rt.block_on(fut).is_err()); }