]> git.vpit.fr Git - perl/modules/Bit-MorseSignals.git/blobdiff - t/30-receiver-obj.t
Update VPIT::TestHelpers to 15e8aee3
[perl/modules/Bit-MorseSignals.git] / t / 30-receiver-obj.t
index 87817a56a1d924bc9bb18246eec263ff390b6be8..73c991e36aa9272658bc6821f4cdaa300f932f74 100644 (file)
@@ -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<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');
+}