Struct http_test_server::resource::Resource [−][src]
pub struct Resource { /* fields omitted */ }
Responsible for configuring a resource and interacting with it.
Must be created through TestServer
.
By default a resource's method is GET
and response is 200 Ok
with empty body.
use http_test_server::TestServer; use http_test_server::http::{Method, Status}; let server = TestServer::new().unwrap(); let resource = server.create_resource("/i-am-a-resource"); resource .status(Status::PartialContent) .method(Method::POST) .body("All good!");
Methods
impl Resource
[src]
impl Resource
pub fn status(&self, status_code: Status) -> &Resource
[src]
pub fn status(&self, status_code: Status) -> &Resource
Defines response's HTTP Status .
Refer to custom_status
for Statuses not covered by Status
.
resource.status(Status::PartialContent);
pub fn custom_status(&self, status_code: u16, description: &str) -> &Resource
[src]
pub fn custom_status(&self, status_code: u16, description: &str) -> &Resource
Defines a custom HTTP Status to response.
Use it to return HTTP statuses that are not covered by Status
.
resource.custom_status(333, "Only Half Beast");
pub fn header(&self, header_name: &str, header_value: &str) -> &Resource
[src]
pub fn header(&self, header_name: &str, header_value: &str) -> &Resource
Defines response headers.
Call it multiple times to add multiple headers. If a header is defined twice only the late value is returned.
resource .header("Content-Type", "application/json") .header("Connection", "Keep-Alive");
pub fn body(&self, content: &'static str) -> &Resource
[src]
pub fn body(&self, content: &'static str) -> &Resource
Defines response's body.
If the response is a stream this value will be sent straight after connection.
Calling multiple times will overwrite the value.
resource.body("this is important!");
pub fn method(&self, method: Method) -> &Resource
[src]
pub fn method(&self, method: Method) -> &Resource
Defines HTTP method.
A resource will only respond to one method, however multiple resources with same URL and different methods can be created.
use http_test_server::http::Method; let resource_put = server.create_resource("/i-am-a-resource"); let resource_post = server.create_resource("/i-am-a-resource"); resource_put.method(Method::PUT); resource_post.method(Method::POST);
pub fn delay(&self, delay: Duration) -> &Resource
[src]
pub fn delay(&self, delay: Duration) -> &Resource
Defines delay to response after client connected
use std::time::Duration; resource.delay(Duration::from_millis(500));
pub fn stream(&self) -> &Resource
[src]
pub fn stream(&self) -> &Resource
Set response as stream, this means clients won't be disconnected after body is sent and updates can be sent and received.
See also: send
, send_line
, stream_receiver
.
let resource = server.create_resource("/stream"); resource.stream(); resource .send_line("some") .send_line("data") .close_open_connections();
pub fn send(&self, data: &str) -> &Resource
[src]
pub fn send(&self, data: &str) -> &Resource
Send data to all connected clients.
let resource = server.create_resource("/stream"); resource.stream(); resource .send("some") .send(" data");
pub fn send_line(&self, data: &str) -> &Resource
[src]
pub fn send_line(&self, data: &str) -> &Resource
Send data to all connected clients.
Same as send
, but appends \n
to data.
See also: stream
let resource = server.create_resource("/stream"); resource.stream(); resource .send_line("one line") .send_line("another line");
pub fn close_open_connections(&self)
[src]
pub fn close_open_connections(&self)
Close all connections with clients.
See also: stream
let resource = server.create_resource("/stream"); resource.stream(); resource.close_open_connections();
pub fn open_connections_count(&self) -> usize
[src]
pub fn open_connections_count(&self) -> usize
Number of clients connected to stream.
See also: stream
let resource = server.create_resource("/stream"); resource .stream() .close_open_connections(); assert_eq!(resource.open_connections_count(), 0);
pub fn stream_receiver(&self) -> Receiver<String>
[src]
pub fn stream_receiver(&self) -> Receiver<String>
Receives data sent from clients through stream.
See also: stream
let resource = server.create_resource("/stream"); let receiver = resource.stream().stream_receiver(); let new_message = receiver.recv().unwrap(); for message in receiver.iter() { println!("Client message: {}", message); }
pub fn request_count(&self) -> u32
[src]
pub fn request_count(&self) -> u32
Number of requests received
assert_eq!(resource.request_count(), 0);
Trait Implementations
impl Debug for Resource
[src]
impl Debug for Resource
fn fmt(&self, f: &mut Formatter) -> Result
[src]
fn fmt(&self, f: &mut Formatter) -> Result
Formats the value using the given formatter. Read more
impl Clone for Resource
[src]
impl Clone for Resource