#!perl -T
use strict;
use warnings;
use Test::More tests => 9;
use Bit::MorseSignals::Emitter;
use Bit::MorseSignals::Receiver;
my @msgs = qw<hlagh hlaghlaghlagh HLAGH HLAGHLAGHLAGH \x{0dd0}\x{00}
h\x{00}la\x{00}gh \x{00}\x{ff}\x{ff}\x{00}\x{00}\x{ff}>;
my $deuce = Bit::MorseSignals::Emitter->new;
my $pants = Bit::MorseSignals::Receiver->new(done => sub {
my $cur = shift @msgs;
is($_[1], $cur, 'received message is correct');
});
$deuce->post($_) for @msgs;
$pants->push while defined ($_ = $deuce->pop); # ))<>((
ok(!$deuce->busy, 'emitter is no longer busy after all the messages have been sent');
ok(!$pants->busy, 'receiver is no longer busy after all the messages have been got');
ok(0, "didn't got $_") for @msgs;