X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=t%2F30-receiver-obj.t;h=73c991e36aa9272658bc6821f4cdaa300f932f74;hb=cdb4aa19a35b9c9f2ccc4a6f4c31d16059ca1089;hp=87817a56a1d924bc9bb18246eec263ff390b6be8;hpb=f90efd6aef2e807ed35c07341456ce727d6668bc;p=perl%2Fmodules%2FBit-MorseSignals.git diff --git a/t/30-receiver-obj.t b/t/30-receiver-obj.t index 87817a5..73c991e 100644 --- a/t/30-receiver-obj.t +++ b/t/30-receiver-obj.t @@ -3,15 +3,32 @@ use strict; use warnings; -use Test::More tests => 3; +use Test::More tests => 15; use Bit::MorseSignals::Receiver; -my $pants = new Bit::MorseSignals::Receiver; +my $pants = Bit::MorseSignals::Receiver->new; ok(defined $pants, 'BMR object is defined'); -ok(ref $pants eq 'Bit::MorseSignals::Receiver', 'BMR object is valid'); +is(ref $pants, 'Bit::MorseSignals::Receiver', 'BMR object is valid'); + +my $pants2 = $pants->new; +ok(defined $pants2, 'BMR::new called as an object method works' ); +is(ref $pants2, 'Bit::MorseSignals::Receiver', 'BMR::new called as an object method works is valid'); +ok(!defined Bit::MorseSignals::Receiver::new(), 'BMR::new called without a class is invalid'); + +eval { $pants2 = Bit::MorseSignals::Receiver->new(qw) }; +like($@, qr/Optional\s+arguments/, 'BME::new gets parameters as key => value pairs'); my $fake = { }; bless $fake, 'Bit::MorseSignal::Hlagh'; -eval { Bit::MorseSignals::Receiver::reset($fake) }; -ok($@ && $@ =~ /^First\s+argument/, "BMR methods only apply to BMR objects"); +for (qw) { + eval "Bit::MorseSignals::Receiver::$_('Bit::MorseSignals::Receiver')"; + like($@, qr/^First\s+argument/, "BMR::$_ isn't a class method"); + eval "Bit::MorseSignals::Receiver::$_(\$fake)"; + like($@, qr/^First\s+argument/, "BMR::$_ only applies to BMR objects"); +} + +{ + local $_; + ok(!defined($pants->push), 'BMR::push returns undef when \$_ isn\'t defined'); +}