#!/usr/bin/env perl
use strict;
use warnings;
-use Test::More tests => 10;
+use Test::More tests => 15;
use Test::Exception;
do {
has 'z' => (
is => 'rw',
);
+
+ has 'attr' => (
+ accessor => 'rw_attr',
+ reader => 'read_attr',
+ writer => 'write_attr',
+ );
};
ok(!Class->can('x'), "No accessor is injected if 'is' has no value");
is($object->z(10), 10);
is($object->z, 10);
+can_ok($object, qw(rw_attr read_attr write_attr));
+$object->write_attr(42);
+is $object->rw_attr, 42;
+is $object->read_attr, 42;
+$object->rw_attr(100);
+is $object->rw_attr, 100;
+is $object->read_attr, 100;
+
+++ /dev/null
-#!/usr/bin/env perl
-use strict;
-use warnings;
-use Test::More tests => 4;
-use Test::Exception;
-
-do {
- package Class;
- use Mouse;
-
- # We want this attr to have a reader and writer with unconventional names,
- # and not the default rw_attr method. -- rjbs, 2008-12-04
- has 'rw_attr' => (
- is => 'rw',
- reader => 'read_attr',
- writer => 'write_attr',
- );
-};
-
-my $object = Class->new;
-
-TODO: {
- local $TODO = 'requires some refactoring to implement';
-
- ok(
- !$object->can('rw_attr'),
- "no rw_attr method because wasn't 'is' ro or rw"
- );
- ok($object->can('read_attr'), "did get a reader");
- ok($object->can('write_attr'), "did get a writer");
-
- # eliminate these eval{} when out of TODO
- eval { $object->write_attr(2); };
-
- is(
- eval { $object->read_attr },
- 2,
- "writing to the object worked",
- );
-}