Skip to main content

mock_igd/
lib.rs

1//! # mock-igd
2//!
3//! A mock UPnP Internet Gateway Device (IGD) server for testing client implementations.
4//!
5//! ## Example
6//!
7//! ```no_run
8//! use mock_igd::{MockIgdServer, Action, Responder};
9//!
10//! #[tokio::test]
11//! async fn test_get_external_ip() {
12//!     let server = MockIgdServer::start().await.unwrap();
13//!
14//!     server.mock(
15//!         Action::GetExternalIPAddress,
16//!         Responder::success()
17//!             .with_external_ip("203.0.113.1".parse().unwrap())
18//!     ).await;
19//!
20//!     // Use server.url() to connect your IGD client
21//!     let url = server.url();
22//! }
23//! ```
24
25pub mod action;
26pub mod error;
27pub mod matcher;
28pub mod mock;
29pub mod responder;
30pub mod server;
31
32// Re-exports for convenience
33pub use action::{Action, Protocol};
34pub use error::{Error, Result};
35pub use matcher::Matcher;
36pub use mock::{ReceivedRequest, ReceivedSsdpRequest};
37pub use responder::Responder;
38pub use server::MockIgdServer;