X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F104_AttributesWithHistory_test.t;h=741e388a71aa07e405ac63926a98d34eca0f406b;hb=cb75020f6a75898378d873583561654f3519ea92;hp=702162e8497d6c4e0e6e995897227aec5892c1c9;hpb=343203eec945553800bc17abc3e650e40e363a8d;p=gitmo%2FClass-MOP.git diff --git a/t/104_AttributesWithHistory_test.t b/t/104_AttributesWithHistory_test.t index 702162e..741e388 100644 --- a/t/104_AttributesWithHistory_test.t +++ b/t/104_AttributesWithHistory_test.t @@ -3,18 +3,17 @@ use strict; use warnings; -use Test::More tests => 19; +use Test::More tests => 28; use File::Spec; BEGIN { use_ok('Class::MOP'); - require_ok(File::Spec->catdir('examples', 'AttributesWithHistory.pod')); + require_ok(File::Spec->catfile('examples', 'AttributesWithHistory.pod')); } { package Foo; - - use Class::MOP 'meta'; + use metaclass; Foo->meta->add_attribute(AttributesWithHistory->new('foo' => ( accessor => 'foo', @@ -29,8 +28,8 @@ BEGIN { sub new { my $class = shift; - bless $class->meta->construct_instance() => $class; - } + $class->meta->new_object(@_); + } } my $foo = Foo->new(); @@ -42,11 +41,20 @@ can_ok($foo, 'set_bar'); can_ok($foo, 'get_bar'); can_ok($foo, 'get_bar_history'); +my $foo2 = Foo->new(); +isa_ok($foo2, 'Foo'); + is($foo->foo, undef, '... foo is not yet defined'); is_deeply( [ $foo->get_foo_history() ], [ ], '... got correct empty history for foo'); + +is($foo2->foo, undef, '... foo2 is not yet defined'); +is_deeply( + [ $foo2->get_foo_history() ], + [ ], + '... got correct empty history for foo2'); $foo->foo(42); is($foo->foo, 42, '... foo == 42'); @@ -55,6 +63,25 @@ is_deeply( [ 42 ], '... got correct history for foo'); +is($foo2->foo, undef, '... foo2 is still not yet defined'); +is_deeply( + [ $foo2->get_foo_history() ], + [ ], + '... still got correct empty history for foo2'); + +$foo2->foo(100); +is($foo->foo, 42, '... foo is still == 42'); +is_deeply( + [ $foo->get_foo_history() ], + [ 42 ], + '... still got correct history for foo'); + +is($foo2->foo, 100, '... foo2 == 100'); +is_deeply( + [ $foo2->get_foo_history() ], + [ 100 ], + '... got correct empty history for foo2'); + $foo->foo(43); $foo->foo(44); $foo->foo(45);