From 7263a1c4cfbf598b2584db510ba0279d6a5ef7da Mon Sep 17 00:00:00 2001 From: Leynos Date: Fri, 20 Jun 2025 19:29:38 +0100 Subject: [PATCH] Refactor route test to reuse processor --- src/frame.rs | 1 + tests/routes.rs | 8 ++++---- tests/util.rs | 6 ++++++ 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/frame.rs b/src/frame.rs index 97e31dc5..6e48e95d 100644 --- a/src/frame.rs +++ b/src/frame.rs @@ -190,6 +190,7 @@ pub trait FrameProcessor: Send + Sync { } /// Simple length-prefixed framing using a configurable length prefix. +#[derive(Clone, Copy, Debug)] pub struct LengthPrefixedProcessor { format: LengthFormat, } diff --git a/tests/routes.rs b/tests/routes.rs index 8a95f2a1..9e38fe2f 100644 --- a/tests/routes.rs +++ b/tests/routes.rs @@ -7,13 +7,13 @@ use bytes::BytesMut; use wireframe::{ Serializer, app::WireframeApp, - frame::{FrameProcessor, LengthPrefixedProcessor}, + frame::FrameProcessor, message::Message, serializer::BincodeSerializer, }; mod util; -use util::run_app_with_frame; +use util::{default_processor, run_app_with_frame}; #[derive(bincode::Encode, bincode::BorrowDecode, PartialEq, Debug)] struct TestEnvelope { @@ -28,9 +28,10 @@ struct Echo(u8); async fn handler_receives_message_and_echoes_response() { let called = Arc::new(AtomicUsize::new(0)); let called_clone = called.clone(); + let processor = default_processor(); let app = WireframeApp::new() .unwrap() - .frame_processor(LengthPrefixedProcessor::default()) + .frame_processor(processor) .route( 1, Box::new(move |_| { @@ -49,7 +50,6 @@ async fn handler_receives_message_and_echoes_response() { }; let env_bytes = BincodeSerializer.serialize(&env).unwrap(); let mut framed = BytesMut::new(); - let processor = LengthPrefixedProcessor::default(); processor.encode(&env_bytes, &mut framed).unwrap(); let out = run_app_with_frame(app, framed.to_vec()).await.unwrap(); diff --git a/tests/util.rs b/tests/util.rs index 66d7e0b4..16371c41 100644 --- a/tests/util.rs +++ b/tests/util.rs @@ -51,3 +51,9 @@ pub async fn run_app_with_frame_with_capacity( server_task.await.unwrap(); Ok(buf) } + +/// Convenience for constructing a default length-prefixed processor. +#[must_use] +pub fn default_processor() -> wireframe::frame::LengthPrefixedProcessor { + wireframe::frame::LengthPrefixedProcessor::default() +}