The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!perl -T

use strict;
use warnings;

use Test::More tests => 10;

use B::RecDeparse;

my $brd = B::RecDeparse->new;
ok(defined $brd, 'BRD object is defined');
is(ref $brd, 'B::RecDeparse', 'BRD object is valid');
ok($brd->isa('B::Deparse'), 'BRD is a BD');

my $brd2 = $brd->new;
ok(defined $brd2, 'BRD::new called as an object method works' );
is(ref $brd2, 'B::RecDeparse', 'BRD::new called as an object method works is valid');
ok($brd2->isa('B::Deparse'), 'BRD is a BD');

my $brd3 = B::RecDeparse::new();
ok(defined $brd3, 'BRD::new called as a function works ');
is(ref $brd3, 'B::RecDeparse', 'BRD::new called as a functions returns a B::RecDeparse object');
ok($brd3->isa('B::Deparse'), 'BRD is a BD');

eval { $brd2 = B::RecDeparse->new(qw<a b c>) };
like($@, qr/Optional\s+arguments/, 'BRD::new gets parameters as key => value pairs');