#[allow(unused)]
macro_rules! impl_test_client {
($client_type:ty, $server_type:ty $(,)?) => {
pub type ConcreteTestClient = crate::test_client::wrappers::TestClientWrapper<$client_type>;
pub type ConcreteTestServer = crate::test_client::wrappers::TestServerWrapper<$server_type>;
impl ConcreteTestClient {
#[must_use]
pub fn new_with_test_routes() -> Self {
let server = <$server_type>::with_test_routes();
let client = <$client_type>::new(server);
crate::test_client::wrappers::TestClientWrapper::new(client)
}
#[must_use]
pub fn new_with_api_routes() -> Self {
let server = <$server_type>::with_api_routes();
let client = <$client_type>::new(server);
crate::test_client::wrappers::TestClientWrapper::new(client)
}
#[must_use]
pub fn from_inner(client: $client_type) -> Self {
crate::test_client::wrappers::TestClientWrapper::new(client)
}
}
impl ConcreteTestServer {
#[must_use]
pub fn new_empty() -> Self {
let server = <$server_type>::new(Vec::new());
crate::test_client::wrappers::TestServerWrapper::new(server)
}
#[must_use]
pub fn new_with_scopes(scopes: Vec<crate::Scope>) -> Self {
let server = <$server_type>::new(scopes);
crate::test_client::wrappers::TestServerWrapper::new(server)
}
#[must_use]
pub fn from_inner(server: $server_type) -> Self {
crate::test_client::wrappers::TestServerWrapper::new(server)
}
#[must_use]
pub fn new_with_test_routes() -> Self {
let server = <$server_type>::with_test_routes();
crate::test_client::wrappers::TestServerWrapper::new(server)
}
#[must_use]
pub fn new_with_api_routes() -> Self {
let server = <$server_type>::with_api_routes();
crate::test_client::wrappers::TestServerWrapper::new(server)
}
}
impl Default for ConcreteTestClient {
fn default() -> Self {
Self::new_with_test_routes()
}
}
impl Default for ConcreteTestServer {
fn default() -> Self {
Self::new_with_test_routes()
}
}
};
}
pub(crate) use impl_test_client;