socket_server_mocker::server_mocker::tcp_server_mocker

Struct TcpServerMocker

source
pub struct TcpServerMocker { /* private fields */ }
Expand description

A TCP server mocker

Can be used to mock a TCP server if the application you want to test uses TCP sockets to connect to a server.

Only 1 client can be connected to the mocked server. When the connection is closed, the mocked server will stop.

Implementations§

Trait Implementations§

source§

impl ServerMocker for TcpServerMocker

TcpServerMocker implementation

§Example

use std::io::Write;
use std::net::TcpStream;
use socket_server_mocker::server_mocker::ServerMocker;
use socket_server_mocker::server_mocker_instruction::Instruction;
use socket_server_mocker::server_mocker_instruction::Instruction::{ReceiveMessage, StopExchange};
use socket_server_mocker::tcp_server_mocker::TcpServerMocker;

let tcp_server_mocker = TcpServerMocker::new_with_port(1234).unwrap();
let mut client = TcpStream::connect("127.0.0.1:1234").unwrap();

tcp_server_mocker.add_mock_instructions(vec![
    ReceiveMessage,
    StopExchange,
]).unwrap();
client.write_all(&[1, 2, 3]).unwrap();

let mock_server_received_message = tcp_server_mocker.pop_received_message();
assert_eq!(Some(vec![1, 2, 3]), mock_server_received_message);
assert!(tcp_server_mocker.pop_server_error().is_none());
assert!(tcp_server_mocker.pop_server_error().is_none());
source§

fn port(&self) -> u16

Returns the port on which the mock server is listening Read more
source§

fn add_mock_instructions( &self, instructions: Vec<Instruction>, ) -> Result<(), ServerMockerError>

Adds a slice of instructions to the server mocker Read more
source§

fn pop_received_message(&self) -> Option<BinaryMessage>

Return first message received by the mock server on the messages queue Read more
source§

fn pop_server_error(&self) -> Option<ServerMockerError>

Return first error received by the mock server on the errors queue Read more
source§

const DEFAULT_NET_TIMEOUT_MS: u64 = 100u64

Default timeout in milliseconds for the server to wait for a message from the client.
source§

const DEFAULT_THREAD_RECEIVER_TIMEOUT_MS: u64 = 100u64

Timeout if no more instruction is available and Instruction::StopExchange hasn’t been sent

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.