summaryrefslogtreecommitdiff
path: root/t
diff options
context:
space:
mode:
authorfranck cuny <franck@lumberjaph.net>2009-06-30 11:24:57 +0200
committerfranck cuny <franck@lumberjaph.net>2009-06-30 11:24:57 +0200
commit2cbd7056206d1c0f5b8f9f0ded4cda65ed784cb8 (patch)
tree9dc03b8a57a6dee24629866de30c7cd572087072 /t
parentinitial commit (diff)
downloadmoosex-methodprivate-2cbd7056206d1c0f5b8f9f0ded4cda65ed784cb8.tar.gz
private and protectd methods and basic tests
Diffstat (limited to '')
-rw-r--r--t/02_pod.t (renamed from xt/03_pod.t)0
-rw-r--r--t/10_method_private.t58
-rw-r--r--t/11_method_protected.t39
3 files changed, 97 insertions, 0 deletions
diff --git a/xt/03_pod.t b/t/02_pod.t
index 437887a..437887a 100644
--- a/xt/03_pod.t
+++ b/t/02_pod.t
diff --git a/t/10_method_private.t b/t/10_method_private.t
new file mode 100644
index 0000000..899d1be
--- /dev/null
+++ b/t/10_method_private.t
@@ -0,0 +1,58 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+
+use Test::More tests => 6;
+use Test::Exception;
+
+{
+
+ package Foo;
+ use Moose;
+ use MooseX::MethodPrivate;
+
+ private 'bar' => sub {
+ my $self = shift;
+ return 'baz';
+ };
+
+ sub baz {
+ my $self = shift;
+ return $self->bar;
+ }
+
+ sub foo {
+ my $self = shift;
+ return $self->foobar(shift);
+ }
+
+ private 'foobar' => sub {
+ my $self = shift;
+ my $str = shift;
+ return 'foobar' . $str;
+ };
+
+}
+
+{
+
+ package Bar;
+ use Moose;
+ extends 'Foo';
+
+ sub newbar {
+ my $self = shift;
+ return $self->bar;
+ }
+}
+
+my $foo = Foo->new();
+isa_ok( $foo, 'Foo' );
+dies_ok { $foo->bar } "... can't call bar, method is private";
+is $foo->baz, 'baz', "... got the good value from &baz";
+is $foo->foo('baz'), 'foobarbaz', "... got the good value from &foobar";
+
+my $bar = Bar->new();
+isa_ok( $bar, 'Bar' );
+dies_ok { $bar->newbar() } "... can't call bar, method is private";
diff --git a/t/11_method_protected.t b/t/11_method_protected.t
new file mode 100644
index 0000000..3b3d35d
--- /dev/null
+++ b/t/11_method_protected.t
@@ -0,0 +1,39 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+
+use Test::More tests => 4;
+use Test::Exception;
+
+{
+
+ package Foo;
+ use Moose;
+ use MooseX::MethodPrivate;
+
+ protected 'bar' => sub {
+ my $self = shift;
+ return 'baz';
+ };
+}
+
+{
+
+ package Bar;
+ use Moose;
+ extends 'Foo';
+
+ sub baz {
+ my $self = shift;
+ return $self->bar;
+ }
+}
+
+my $foo = Foo->new();
+isa_ok( $foo, 'Foo' );
+dies_ok { $foo->bar } "... can't call bar, method is protected";
+
+my $bar = Bar->new();
+isa_ok( $bar, 'Bar' );
+is $bar->baz(), 'baz', "... got the good value from &bar";