X-Git-Url: http://git.vpit.fr/?p=perl%2Fmodules%2FBit-MorseSignals.git;a=blobdiff_plain;f=t%2F30-receiver-obj.t;h=53f8d44141ba92a47d923e5948ca28bf7a34cbf0;hp=87817a56a1d924bc9bb18246eec263ff390b6be8;hb=d4cad38280f090c2057f4df1d6ef1fce88ccbcc6;hpb=8ce9fd9d5f4e6197d1a33a3fd11953cc1dc3b31f diff --git a/t/30-receiver-obj.t b/t/30-receiver-obj.t index 87817a5..53f8d44 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; 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 = new Bit::MorseSignals::Receiver qw/a b c/ }; +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/push reset busy msg/) { + 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'); +}