mockito 0.1.1

Easy web-mocking for Rust. This is a work in progress!
Documentation
use Url;
#[cfg(feature = "mock_tcp_stream")]
use server::MockServer;

use std::net::{SocketAddr, ToSocketAddrs};
use std::vec::IntoIter;
use std::io::Result;

impl<'a> ToSocketAddrs for Url<'a> {
    type Iter = IntoIter<SocketAddr>;

    #[cfg(not(feature = "mock_tcp_stream"))]
    fn to_socket_addrs(&self) -> Result<Self::Iter> {
        self.0.to_socket_addrs()
    }

    #[cfg(feature = "mock_tcp_stream")]
    fn to_socket_addrs(&self) -> Result<Self::Iter> {
        let host = &MockServer::host();

        host.to_socket_addrs()
    }
}

#[cfg(test)]
#[cfg(not(feature = "mock_tcp_stream"))]
mod tests {
    use url::Url;
    use std::net::{ToSocketAddrs, SocketAddr, SocketAddrV4, Ipv4Addr};
    use std::str::FromStr;

    #[test]
    fn test_url_from_str_is_ok() {
        let url = Url("1.2.3.4:5678");

        assert!(url.to_socket_addrs().is_ok());
    }

    #[test]
    fn test_url_from_str_points_to_original_url() {
        let url = Url("1.2.3.4:5678");

        let expected_ip = Ipv4Addr::from_str("1.2.3.4").unwrap();
        let expected_port = 5678;
        let expected_url = SocketAddr::V4(SocketAddrV4::new(expected_ip, expected_port));

        assert_eq!(expected_url, url.to_socket_addrs().unwrap().last().unwrap());
    }
}

#[cfg(test)]
#[cfg(feature = "mock_tcp_stream")]
mod mock_tcp_stream_tests {
    use url::Url;
    use server::MockServer;
    use std::net::{ToSocketAddrs, SocketAddr, SocketAddrV4, Ipv4Addr};
    use std::str::FromStr;

    #[test]
    fn test_mocked_url_from_str_is_ok() {
        let url = Url("1.2.3.4:5678");

        assert!(url.to_socket_addrs().is_ok());
    }

    #[test]
    fn test_mocked_url_from_str_points_to_localhost() {
        let url = Url("1.2.3.4:5678");

        let expected_ip = Ipv4Addr::from_str("127.0.0.1").unwrap();
        let expected_port = MockServer::port() as u16;
        let expected_url = SocketAddr::V4(SocketAddrV4::new(expected_ip, expected_port));

        assert_eq!(expected_url, url.to_socket_addrs().unwrap().last().unwrap());
    }
}