use crate::{Matcher, Mock, Server};
use lazy_static::lazy_static;
use std::cell::RefCell;
use std::sync::LockResult;
use std::sync::{Mutex, MutexGuard};
lazy_static! {
static ref TEST_MUTEX: Mutex<()> = Mutex::new(());
static ref DEFAULT_SERVER: Mutex<Server> = Mutex::new(Server::new_with_port(0));
}
thread_local!(
pub(crate) static LOCAL_TEST_MUTEX: RefCell<LockResult<MutexGuard<'static, ()>>> =
RefCell::new(TEST_MUTEX.lock());
);
#[deprecated(since = "0.32.0", note = "Use `Server::mock` instead")]
pub fn mock<P: Into<Matcher>>(method: &str, path: P) -> Mock {
LOCAL_TEST_MUTEX.with(|_| {});
let mut server = DEFAULT_SERVER.lock().unwrap();
server.mock(method, path)
}
#[deprecated(since = "0.32.0", note = "Use `Server::host_with_port` instead")]
pub fn server_address() -> String {
let server = DEFAULT_SERVER.lock().unwrap();
server.host_with_port()
}
#[deprecated(since = "0.32.0", note = "Use `Server::url` instead")]
pub fn server_url() -> String {
let server = DEFAULT_SERVER.lock().unwrap();
server.url()
}
#[deprecated(since = "0.32.0", note = "Use `Server::reset` instead")]
pub fn reset() {
let mut server = DEFAULT_SERVER.lock().unwrap();
server.reset();
}