aboutsummaryrefslogtreecommitdiff
path: root/jsonrpc/tests/impl_rpc_service.rs
diff options
context:
space:
mode:
authorhozan23 <hozan23@karyontech.net>2024-04-11 10:19:20 +0200
committerhozan23 <hozan23@karyontech.net>2024-05-19 13:51:30 +0200
commit0992071a7f1a36424bcfaf1fbc84541ea041df1a (patch)
tree961d73218af672797d49f899289bef295bc56493 /jsonrpc/tests/impl_rpc_service.rs
parenta69917ecd8272a4946cfd12c75bf8f8c075b0e50 (diff)
add support for tokio & improve net crate api
Diffstat (limited to 'jsonrpc/tests/impl_rpc_service.rs')
-rw-r--r--jsonrpc/tests/impl_rpc_service.rs27
1 files changed, 27 insertions, 0 deletions
diff --git a/jsonrpc/tests/impl_rpc_service.rs b/jsonrpc/tests/impl_rpc_service.rs
new file mode 100644
index 0000000..e590ae1
--- /dev/null
+++ b/jsonrpc/tests/impl_rpc_service.rs
@@ -0,0 +1,27 @@
+use karyon_jsonrpc::{impl_rpc_service, Error, RPCService};
+use serde_json::Value;
+
+#[test]
+fn service() {
+ struct Foo {}
+
+ impl Foo {
+ async fn foo(&self, params: Value) -> Result<Value, Error> {
+ Ok(params)
+ }
+ }
+
+ impl_rpc_service!(Foo, foo);
+
+ let f = Foo {};
+
+ assert!(f.get_method("foo").is_some());
+ assert!(f.get_method("bar").is_none());
+
+ let params = serde_json::json!("params");
+
+ smol::block_on(async {
+ let foo_method = f.get_method("foo").unwrap();
+ assert_eq!(foo_method(params.clone()).await.unwrap(), params);
+ });
+}