tcp-test 0.1.0

Test your TCP code
Documentation
# tcp-test - Test your TCP code

[![travis-badge]][travis]
[![appveyor-badge]][appveyor]
[![crates.io-badge]][crates.io]
[![docs-badge]][docs]
[![license-badge]][license]

[travis-badge]: https://travis-ci.com/Draphar/tcp-test.svg?branch=master
[travis]: https://travis-ci.com/Draphar/tcp-test
[appveyor-badge]: https://ci.appveyor.com/api/projects/status/github/Draphar/tcp-test?svg=true&branch=master
[appveyor]: https://ci.appveyor.com/project/Draphar/test-exec
[crates.io-badge]: https://img.shields.io/crates/v/tcp-test.svg
[crates.io]: https://crates.io/crates/tcp-test
[docs-badge]: https://docs.rs/tcp-test/badge.svg
[docs]: https://docs.rs/tcp-test
[license-badge]: https://img.shields.io/crates/l/tcp-test.svg
[license]: https://github.com/Draphar/tcp-test/blob/master/LICENSE

`tcp-test` is a Rust testing library to programmatically use real TCP in your tests.

## Usage

`Cargo.toml`

```toml
[dev-dependencies]
tcp-test = "0.1"
```

Then simply use [`channel()`] in every test:

```rust
use tcp_test::channel;
use std::io::{self, Read, Write};

#[test]
fn some_test() {
    let (mut local, mut remote) = channel();

    // both streams point to each other
    let local_addr = remote.local_addr().unwrap();
    let peer_addr = local.peer_addr().unwrap();
    assert_eq!(local_addr, peer_addr);

    let data = b"Hello, dear listener!";

    local.write_all(data).unwrap();
    let mut buf = Vec::new();
    remote.read_to_end(&mut buf).unwrap();
    assert_eq!(&buf, data);
}

#[test]
fn other_test() {
    let (mut local, mut remote) = channel();

    // ...
}
```

[`channel()`]: https://docs.rs/tcp-test/0.1.0/tcp_test/fn.channel.html