[−][src]Struct wiremock::ResponseTemplate
The blueprint for the response returned by a MockServer
when a Mock
matches on an incoming request.
Implementations
impl ResponseTemplate
[src]
pub fn new<S>(s: S) -> Self where
S: TryInto<StatusCode>,
<S as TryInto<StatusCode>>::Error: Debug,
[src]
S: TryInto<StatusCode>,
<S as TryInto<StatusCode>>::Error: Debug,
Start building a ResponseTemplate
specifying the status code of the response.
pub fn append_header<K, V>(mut self: Self, key: K, value: V) -> Self where
K: TryInto<HeaderName>,
<K as TryInto<HeaderName>>::Error: Debug,
V: TryInto<HeaderValue>,
<V as TryInto<HeaderValue>>::Error: Debug,
[src]
K: TryInto<HeaderName>,
<K as TryInto<HeaderName>>::Error: Debug,
V: TryInto<HeaderValue>,
<V as TryInto<HeaderValue>>::Error: Debug,
Append a header value
to list of headers with key
as header name.
Unlike insert_header
, this function will not override the contents of a header:
- if there are no header values with
key
as header name, it will insert one; - if there are already some values with
key
as header name, it will append to the existing list.
pub fn insert_header<K, V>(mut self: Self, key: K, value: V) -> Self where
K: TryInto<HeaderName>,
<K as TryInto<HeaderName>>::Error: Debug,
V: TryInto<HeaderValue>,
<V as TryInto<HeaderValue>>::Error: Debug,
[src]
K: TryInto<HeaderName>,
<K as TryInto<HeaderName>>::Error: Debug,
V: TryInto<HeaderValue>,
<V as TryInto<HeaderValue>>::Error: Debug,
Insert a header value
with key
as header name.
This function will override the contents of a header:
- if there are no header values with
key
as header name, it will insert one; - if there are already some values with
key
as header name, it will drop them and start a new list of header values, containing onlyvalue
.
Example:
use wiremock::{MockServer, Mock, ResponseTemplate}; use wiremock::matchers::method; #[async_std::main] async fn main() { // Arrange let mock_server = MockServer::start().await; let correlation_id = "1311db4f-fe65-4cb2-b514-1bb47f781aa7"; let template = ResponseTemplate::new(200).insert_header( "X-Correlation-ID", correlation_id ); Mock::given(method("GET")) .respond_with(template) .mount(&mock_server) .await; // Act let res = surf::get(&mock_server.uri()) .await .unwrap(); // Assert assert_eq!(res.header("X-Correlation-ID").unwrap().as_str(), correlation_id); }
pub fn set_body_bytes<B>(mut self: Self, body: B) -> Self where
B: TryInto<Vec<u8>>,
<B as TryInto<Vec<u8>>>::Error: Debug,
[src]
B: TryInto<Vec<u8>>,
<B as TryInto<Vec<u8>>>::Error: Debug,
Set the response body with bytes.
It sets "Content-Type" to "application/octet-stream".
To set a body with bytes but a different "Content-Type"
set_body_raw
can be used.
pub fn set_body_json<B: Serialize>(mut self: Self, body: B) -> Self
[src]
Set the response body from a JSON-serializable value.
It sets "Content-Type" to "application/json".
pub fn set_body_string<T>(mut self: Self, body: T) -> Self where
T: TryInto<String>,
<T as TryInto<String>>::Error: Debug,
[src]
T: TryInto<String>,
<T as TryInto<String>>::Error: Debug,
Set the response body to a string.
It sets "Content-Type" to "text/plain".
pub fn set_body_raw<B>(mut self: Self, body: B, mime: &str) -> Self where
B: TryInto<Vec<u8>>,
<B as TryInto<Vec<u8>>>::Error: Debug,
[src]
B: TryInto<Vec<u8>>,
<B as TryInto<Vec<u8>>>::Error: Debug,
Set a raw response body. The mime type needs to be set because the raw body could be of any type.
Example:
use surf::http::mime; use wiremock::{MockServer, Mock, ResponseTemplate}; use wiremock::matchers::method; mod external { // This could be a method of a struct that is // implemented in another crate and the struct // does not implement Serialize. pub fn body() -> Vec<u8>{ r#"{"hello": "world"}"#.as_bytes().to_owned() } } #[async_std::main] async fn main() { // Arrange let mock_server = MockServer::start().await; let template = ResponseTemplate::new(200).set_body_raw( external::body(), "application/json" ); Mock::given(method("GET")) .respond_with(template) .mount(&mock_server) .await; // Act let mut res = surf::get(&mock_server.uri()) .await .unwrap(); let body = res.body_string() .await .unwrap(); // Assert assert_eq!(body, r#"{"hello": "world"}"#); assert_eq!(res.content_type(), Some(mime::JSON)); }
pub fn set_delay(mut self: Self, delay: Duration) -> Self
[src]
By default the MockServer
tries to fulfill incoming requests as fast as possible.
You can use set_delay
to introduce an artificial delay to simulate the behaviour of
a real server with a non-neglibible latency.
In particular, you can use it to test the behaviour of your timeout policies.
Example:
use isahc::config::Configurable; use wiremock::{MockServer, Mock, ResponseTemplate}; use wiremock::matchers::method; use std::time::Duration; use async_std::prelude::FutureExt; #[async_std::main] async fn main() { // Arrange let mock_server = MockServer::start().await; let delay = Duration::from_secs(1); let template = ResponseTemplate::new(200).set_delay(delay.clone()); Mock::given(method("GET")) .respond_with(template) .mount(&mock_server) .await; // Act let mut res = async_std::future::timeout( // Shorter than the response delay! delay / 3, surf::get(&mock_server.uri()) ) .await; // Assert - Timeout error! assert!(res.is_err()); }
Trait Implementations
impl Clone for ResponseTemplate
[src]
pub fn clone(&self) -> ResponseTemplate
[src]
pub fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl Debug for ResponseTemplate
[src]
impl Respond for ResponseTemplate
[src]
A ResponseTemplate
is the simplest Respond
implementation: it returns a clone of itself
no matter what the incoming request contains!
pub fn respond(&self, _request: &Request) -> ResponseTemplate
[src]
Auto Trait Implementations
impl RefUnwindSafe for ResponseTemplate
[src]
impl Send for ResponseTemplate
[src]
impl Sync for ResponseTemplate
[src]
impl Unpin for ResponseTemplate
[src]
impl UnwindSafe for ResponseTemplate
[src]
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T> Instrument for T
[src]
pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]
pub fn in_current_span(self) -> Instrumented<Self>
[src]
impl<T> Instrument for T
[src]
pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]
pub fn in_current_span(self) -> Instrumented<Self>
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,
pub fn vzip(self) -> V
impl<T> WithSubscriber for T
[src]
pub fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
[src]
S: Into<Dispatch>,