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

use lib 't/lib';

use Test::More tests => 4;

my $class = 'App::Addex::Output::ToFile';
use_ok($class);

eval { $class->new; };
like($@, qr/no filename/, 'filename is a required arg');

# Is this test portable? -- rjbs, 2007-05-11
eval { $class->new({ filename => '/' }); };
like($@, qr/couldn't open/, 'filename is a required arg');

# WARNING!  This test relies on the object guts. -- rjbs, 2007-05-11
{
  local $SIG{__WARN__} = sub { }; # avoid 'print on closed fh' warning
  my $self = $class->new({ filename => \(my $buffer) });
  close $self->{fh};
  eval { $self->output("line") };
  like($@, qr/couldn't write/, 'exception raised if output fails');
}