pristine_typescript_openrpc_server_client/
lib.rs1
2#[macro_use]
3extern crate jsonrpc_client_core;
4use serde::{Serialize, Deserialize};
5
6#[cfg(test)]
7use autorand::Random;
8
9#[cfg(test)]
10mod test_harness;
11
12pub type HelloResult = String;
13
14jsonrpc_client!(pub struct HelloWorldRPC {
15 pub fn hello(&mut self) -> RpcRequest<HelloResult>;
16});
17
18#[cfg(test)]
19mod tests {
20 use super::*;
21 use test_harness::*;
22 use autorand::Random;
23 use futures::Future;
24
25
26
27 #[test]
28 #[allow(non_snake_case)]
29 fn hello_test () {
30 let method = "hello".into();
31
32 let mut params = Vec::new();
33
34 let result = HelloResult::random();
35 let result_serialized = serde_json::to_vec(&result).unwrap();
36 let result: HelloResult = serde_json::from_slice(&result_serialized).unwrap();
37
38 let transport = MockTransport {
39 method,
40 params,
41 result: serde_json::to_value(&result).unwrap(),
42 };
43
44 let mut client = HelloWorldRPC::new(transport);
45 let received_result = client.hello(
46
47 ).wait().unwrap();
48
49 let result_s =
50 assert_eq!(result, received_result);
51 }
52
53}