ro test
Shawn M Moore [Fri, 10 Jul 2009 05:47:41 +0000 (01:47 -0400)]
t/001-ro.t [new file with mode: 0644]

diff --git a/t/001-ro.t b/t/001-ro.t
new file mode 100644 (file)
index 0000000..fafb47b
--- /dev/null
@@ -0,0 +1,44 @@
+#!/usr/bin/env perl
+use strict;
+use warnings;
+use Test::More tests => 7;
+use Test::Exception;
+
+do {
+    package Person;
+    use Moose;
+    use MooseX::IsDefaults::RO;
+
+    has name => (
+        isa => 'Str',
+    );
+
+    has birth_year => (
+        isa => 'Int',
+    );
+
+    has favorite_language => (
+        is      => 'rw',
+        isa     => 'Str',
+        default => 'Perl',
+    );
+};
+
+can_ok(Person => qw(name birth_year favorite_language));
+
+my $whacko = Person->new(name => 'Stevan', birth_year => 1924);
+is($whacko->name, 'Stevan');
+is($whacko->birth_year, 1924);
+is($whacko->favorite_language, 'Perl');
+
+throws_ok {
+    $whacko->name('Stevan Little');
+} qr/read-only accessor/;
+
+throws_ok {
+    $whacko->birth_year(1922);
+} qr/read-only accessor/;
+
+$whacko->favorite_language('C#'); # he's dead to us now..
+is($whacko->favorite_language, 'C#');
+