pub struct Buffer { /* private fields */ }Available on crate feature
mocks only.Expand description
A mocking layer that buffers the commands internally and returns QUEUED to the caller.
#[tokio::test]
async fn should_use_buffer_mock() {
let buffer = Arc::new(Buffer::new());
let config = Config {
mocks: Some(buffer.clone()),
..Default::default()
};
let client = Builder::from_config(config).build().unwrap();
client.init().await.expect("Failed to connect");
let actual: String = client
.set("foo", "bar", None, None, false)
.await
.expect("Failed to call SET");
assert_eq!(actual, "QUEUED");
let actual: String = client.get("foo").await.expect("Failed to call GET");
assert_eq!(actual, "QUEUED");
// note: values that act as keys use the `Value::Bytes` variant internally
let expected = vec![
MockCommand {
cmd: "SET".into(),
subcommand: None,
args: vec!["foo".as_bytes().into(), "bar".into()],
},
MockCommand {
cmd: "GET".into(),
subcommand: None,
args: vec!["foo".as_bytes().into()],
},
];
assert_eq!(buffer.take(), expected);
}Implementations§
Source§impl Buffer
impl Buffer
Sourcepub fn take(&self) -> Vec<MockCommand>
pub fn take(&self) -> Vec<MockCommand>
Drain and return the internal command buffer.
Sourcepub fn inner(&self) -> Vec<MockCommand>
pub fn inner(&self) -> Vec<MockCommand>
Read a copy of the internal command buffer without modifying the contents.
Sourcepub fn push_back(&self, command: MockCommand)
pub fn push_back(&self, command: MockCommand)
Push a new command onto the back of the internal buffer.
Sourcepub fn pop_back(&self) -> Option<MockCommand>
pub fn pop_back(&self) -> Option<MockCommand>
Pop a command from the back of the internal buffer.
Sourcepub fn push_front(&self, command: MockCommand)
pub fn push_front(&self, command: MockCommand)
Push a new command onto the front of the internal buffer.
Sourcepub fn pop_front(&self) -> Option<MockCommand>
pub fn pop_front(&self) -> Option<MockCommand>
Pop a command from the front of the internal buffer.
Trait Implementations§
Source§impl Mocks for Buffer
impl Mocks for Buffer
Source§fn process_command(&self, command: MockCommand) -> Result<Value, Error>
fn process_command(&self, command: MockCommand) -> Result<Value, Error>
Intercept and process a command, returning any
Value. Read moreSource§fn process_transaction(
&self,
commands: Vec<MockCommand>,
) -> Result<Value, Error>
fn process_transaction( &self, commands: Vec<MockCommand>, ) -> Result<Value, Error>
Intercept and process an entire transaction. The provided commands will not include
EXEC. Read moreAuto Trait Implementations§
impl !Freeze for Buffer
impl !RefUnwindSafe for Buffer
impl Send for Buffer
impl Sync for Buffer
impl Unpin for Buffer
impl UnwindSafe for Buffer
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more