pub struct UdpServerMocker { /* private fields */ }
Expand description
A UDP server mocker
Can be used to mock a UDP server if the application you want to test uses UDP sockets to connect to a server.
It’s preferable that only 1 client sends messages to the mocked server. When the object is dropped or a stop instruction is received, the mocked server will stop. The server will also stop in case no more instructions are available.
Implementations§
source§impl UdpServerMocker
impl UdpServerMocker
sourcepub fn new() -> Result<Self, ServerMockerError>
pub fn new() -> Result<Self, ServerMockerError>
Create a new instance of the UDP server mocker on a random free port.
The port can be retrieved with the ServerMocker::port
method.
sourcepub fn new_with_port(port: u16) -> Result<Self, ServerMockerError>
pub fn new_with_port(port: u16) -> Result<Self, ServerMockerError>
Create a new instance of the UDP server mocker on the given port. If the port is already in use, the method will return an error.
sourcepub fn new_with_opts(
options: UdpMockerOptions,
) -> Result<Self, ServerMockerError>
pub fn new_with_opts( options: UdpMockerOptions, ) -> Result<Self, ServerMockerError>
Create a new instance of the TCP server mocker with the given options.
§Panics
It is assumed that threads can use messages channels without panicking.
sourcepub fn options(&self) -> &UdpMockerOptions
pub fn options(&self) -> &UdpMockerOptions
Get the options used to create the server mocker
Trait Implementations§
source§impl ServerMocker for UdpServerMocker
impl ServerMocker for UdpServerMocker
UdpServerMocker
implementation
§Example
use std::net::{SocketAddr, UdpSocket};
use socket_server_mocker::ServerMocker;
use socket_server_mocker::Instruction::{ReceiveMessage, SendMessage, StopExchange};
use socket_server_mocker::UdpServerMocker;
let server = UdpServerMocker::new().unwrap();
// 0 = random port
let mut client = UdpSocket::bind("127.0.0.1:0").unwrap();
server.add_mock_instructions(vec![
ReceiveMessage,
SendMessage(vec![4, 5, 6]),
StopExchange,
]).unwrap();
client.send_to(&[1, 2, 3], server.socket_address()).unwrap();
let mut buffer = [0; 3];
client.recv_from(&mut buffer).unwrap();
assert_eq!([4, 5, 6], buffer);
assert_eq!(Some(vec![1, 2, 3]), server.pop_received_message());
assert!(server.pop_server_error().is_none());