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

BEGIN {
  eval "use Test::Exception";
  if ($@) {
    plan skip_all => 'requires Test::Exception';
    exit;
  }
}

plan 'no_plan';

{ # should croak
  my $dtx = DateTimeX::Web->new( on_error => 'croak' );

  dies_ok { $dtx->from( year => 2007, month => 15 ); };
}

{ # should not croak
  my $dtx = DateTimeX::Web->new( on_error => 'ignore' );

  lives_ok { $dtx->from( year => 2007, month => 15 ); };
}

{ # callback
  my $error;
  my $dtx = DateTimeX::Web->new( on_error => sub { $error = "error: ".shift } );

  lives_ok { $dtx->from( year => 2007, month => 15 ); };
  like $error => qr/^error: /, $error;
}