binary_option_tools/
lib.rs

1pub mod pocketoption;
2
3#[cfg(test)]
4mod tests {
5    use std::time::Duration;
6
7    use serde::{Deserialize, Serialize};
8    use tokio::time::sleep;
9    use tracing::debug;
10
11    use binary_options_tools_core::utils::tracing::start_tracing;
12    use binary_options_tools_macros::{deserialize, serialize, timeout};
13    #[derive(Serialize, Deserialize, Debug, PartialEq, Eq)]
14    struct Test {
15        name: String,
16    }
17
18    #[test]
19    fn test_deserialize_macro() {
20        let test = Test {
21            name: "Test".to_string(),
22        };
23        let test_str = serialize!(&test).unwrap();
24        let test2 = deserialize!(Test, &test_str).unwrap();
25        assert_eq!(test, test2)
26    }
27
28    struct Tester;
29
30    #[tokio::test]
31    async fn test_timeout_macro() -> anyhow::Result<()> {
32        start_tracing(true).unwrap();
33
34        #[timeout(1, tracing(level = "info", skip(_tester)))]
35        async fn this_is_a_test(_tester: Tester) -> anyhow::Result<()> {
36            debug!("Test");
37            sleep(Duration::from_secs(0)).await;
38            Ok(())
39        }
40
41        this_is_a_test(Tester).await
42    }
43}