The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/env perl
use strict; use warnings; no warnings 'redefine';
use rlib '../lib';
use vars qw($response);

use Test::More;
note( "Testing Devel::Trepan::Interface::User" );

BEGIN {
use_ok( 'Devel::Trepan::Interface::User' );
}

package Devel::Trepan::Interface::User;
sub readline($;$) {
    my ($self, $response) = @_;
    return $main::response;
}

package main;
my $user_intf = Devel::Trepan::Interface::User->new;

for my $s ('y', 'Y', 'Yes', '  YES  ') {
    $main::response = $s;
    my $ans = $user_intf->confirm('Testing', 1);
    is($ans, 1);
}

for my $s ('n', 'N', 'No', '  NO  ') {
    $main::response = $s;
    my $ans = $user_intf->confirm('Testing', 1);
    is($ans, 0);
}

eval << 'EOF';
    package Devel::Trepan::Interface::User;
    sub readline($;$) {
	my ($self, $response) = @_;
	return '';
    }
};
EOF

package main;
for my $tf (1, 0) {
    is($user_intf->confirm('default testing', $tf), $tf)
}

# FIXME: more thorough testing of other routines in user.
done_testing();