use smoltcp::phy::{
    Loopback,
    Medium,
};

use dyn_phy::DynPhyExt;

#[test]
fn dyn_phy() {
    let mut loopback = Loopback::new(Medium::Ethernet);

    assert_eq!(true, loopback.send_now(&[0xa5; 10]));

    assert_eq!(
        true,
        loopback.receive_now(|b, tx| {
            assert_eq!(b, [0xa5; 10]);

            tx(&b[..5]);
        })
    );

    assert_eq!(
        true,
        loopback.receive_now(|b, _tx| {
            assert_eq!(b, [0xa5; 5]);
        })
    );
}