use Test::More tests => 14;
use Test::Output;
use strict;
use lib 't';
use_ok('Test::Qpsmtpd');

ok(my ($smtpd, $conn) = Test::Qpsmtpd->new_conn(), "get new connection");

# fault method
{
    my $fault;
    stderr_like { $fault = $smtpd->fault }
        qr/program fault - command not performed \(No such file or directory\)/,
        'fault outputs proper warning to STDOUT';
    is($fault->[0], 451, 'fault returns 451');
};
{
    my $fault;
    stderr_like { $fault = $smtpd->fault('test message') }
        qr/test message \(No such file or directory\)/,
        'fault outputs proper custom warning to STDOUT';
    is($fault->[1], 'Internal error - try again later - test message',
       'returns the input message');
};

# vrfy command
is(($smtpd->command('VRFY <foo@bar>'))[0], 252, 'VRFY command');

# plugins/count_unrecognized_commands
is(($smtpd->command('nonsense'))[0], 500, 'bad command 1');
is(($smtpd->command('nonsense'))[0], 500, 'bad command 2');
is(($smtpd->command('nonsense'))[0], 500, 'bad command 3');
is(($smtpd->command('nonsense'))[0], 521, 'bad command 4');


use Test::More tests => 14;
use Test::Output;
use strict;
use lib 't';
use_ok('Test::Qpsmtpd');

ok(my ($smtpd, $conn) = Test::Qpsmtpd->new_conn(), "get new connection");

# fault method
{
    my $fault;
    stderr_like { $fault = $smtpd->fault }
        qr/program fault - command not performed \(/,
        'fault outputs proper warning to STDOUT';
    is($fault->[0], 451, 'fault returns 451');
};
{
    my $fault;
    stderr_like { $fault = $smtpd->fault('test message') }
        qr/test message \(/,
        'fault outputs proper custom warning to STDOUT';
    is($fault->[1], 'Internal error - try again later - test message',
       'returns the input message');
};

# vrfy command
is(($smtpd->command('VRFY <foo@bar>'))[0], 252, 'VRFY command');

# plugins/count_unrecognized_commands
is(($smtpd->command('nonsense'))[0], 500, 'bad command 1');
is(($smtpd->command('nonsense'))[0], 500, 'bad command 2');
is(($smtpd->command('nonsense'))[0], 500, 'bad command 3');
is(($smtpd->command('nonsense'))[0], 521, 'bad command 4');


Remove reference to 'No such file or directory', as there's no guarantee this is what $! will return when this code is called during testing.
Remove reference to 'No such file or directory', as there's no guarantee
this is what $!  will return when this code is called during testing.
