From f319d7ab5278a3cfb43d38875d81c28cc2dce1e1 Mon Sep 17 00:00:00 2001 From: diogo464 Date: Wed, 16 Jul 2025 10:46:41 +0100 Subject: Initial commit - extracted urpc from monorepo --- tests/tcp.rs | 34 ++++++++++++++++++++++++++++++++++ tests/unix.rs | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 68 insertions(+) create mode 100644 tests/tcp.rs create mode 100644 tests/unix.rs (limited to 'tests') diff --git a/tests/tcp.rs b/tests/tcp.rs new file mode 100644 index 0000000..a2f647d --- /dev/null +++ b/tests/tcp.rs @@ -0,0 +1,34 @@ +#[tokio::test] +async fn test_hello_service() { + #[urpc::service] + trait Hello { + type Error = (); + + async fn hello(name: String) -> String; + } + + struct HelloServer; + + impl Hello for HelloServer { + async fn hello(&self, _ctx: urpc::Context, name: String) -> Result { + Ok(format!("Hello, {name}!")) + } + } + + let listener = urpc::tcp::bind("0.0.0.0:3000").await.unwrap(); + + // spawn the server + tokio::spawn(async move { + urpc::Server::default() + .with_listener(listener) + .with_service(HelloServer.into_service()) + .serve() + .await + }); + + // create a client + let channel = urpc::ClientChannel::new(urpc::tcp::connect("127.0.0.1:3000").await.unwrap()); + let client = HelloClient::new(channel); + let greeting = client.hello("World".into()).await.unwrap(); + assert_eq!(greeting, "Hello, World!"); +} diff --git a/tests/unix.rs b/tests/unix.rs new file mode 100644 index 0000000..bfa5a69 --- /dev/null +++ b/tests/unix.rs @@ -0,0 +1,34 @@ +#[tokio::test] +async fn test_hello_service() { + #[urpc::service] + trait Hello { + type Error = (); + + async fn hello(name: String) -> String; + } + + struct HelloServer; + + impl Hello for HelloServer { + async fn hello(&self, _ctx: urpc::Context, name: String) -> Result { + Ok(format!("Hello, {name}!")) + } + } + + let listener = urpc::unix::bind("./hello.service").await.unwrap(); + + // spawn the server + tokio::spawn(async move { + urpc::Server::default() + .with_listener(listener) + .with_service(HelloServer.into_service()) + .serve() + .await + }); + + // create a client + let channel = urpc::ClientChannel::new(urpc::unix::connect("./hello.service").await.unwrap()); + let client = HelloClient::new(channel); + let greeting = client.hello("World".into()).await.unwrap(); + assert_eq!(greeting, "Hello, World!"); +} -- cgit