use strict;
use warnings FATAL => 'all';

use Apache::Test;
use Apache::TestUtil;
use Apache::TestRequest ();

my @test_strings = ('Hello Eliza',
                    'How are you?',
                    'Why do I have core dumped?',
                    'I feel like writing some tests today, what about you?',
                    'Good bye, Eliza');

plan tests => 2 + @test_strings, need_module 'Chatbot::Eliza';

my $socket = Apache::TestRequest::vhost_socket('TestProtocol::eliza');

ok $socket;

for (@test_strings) {
    print $socket "$_\n";
    chomp(my $reply = <$socket> || '');
    t_debug "send: $_";
    t_debug "recv: $reply";
    ok $reply;
}

# at this point 'Good bye, Eliza' should abort the connection.
my $string = 'Eliza should not hear this';
print $socket "$string\n";
chomp(my $reply = <$socket> || '');
t_debug "Eliza shouldn't respond anymore";
ok !$reply;
