The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use strict;
use warnings;

use lib 't/lib';
use POE::Component::MessageQueue::Test::Stomp;
use POE::Component::MessageQueue::Test::MQ;
use Test::More;
use Test::Exception;

if ($^O eq 'MSWin32') {
    plan skip_all => 'Tests hang on Windows :(';
} else {
    plan tests => 8;
}

# Once upon a time, we had a bug where the MQ would crash if you connected,
# sent some messages, received them, disconnected, reconnected, and sent 
# some more.

my $pid = start_mq(); sleep 2;
ok($pid, "MQ started");

foreach my $i (1..2) {
	my $receiver;
	lives_ok { 
		$receiver = stomp_connect();
		stomp_subscribe($receiver);
	} "Subscribed: $i";

	lives_ok {
		my $sender = stomp_connect();
		stomp_send($sender) for (1..10);
		$sender->disconnect;
	} "Sent:       $i";

	lives_ok {
		stomp_receive($receiver) for (1..10);
		$receiver->disconnect;
	} "Received:   $i";
}

ok(stop_fork($pid), 'MQ shut down.');