diff options
author | Jesse Luehrs <doy@tozt.net> | 2011-04-05 22:42:32 -0500 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2011-04-05 22:42:32 -0500 |
commit | 7a7f88fcf941c9aca05e235470fc6a43abaf32a3 (patch) | |
tree | 5b374f21ed30a98865ceed33cd3b59314b4a1150 /t/moose-roles.t | |
parent | 43a3a6d662f97d039fe9d02ddf10b89bfc6fd16e (diff) | |
download | class-refresh-7a7f88fcf941c9aca05e235470fc6a43abaf32a3.tar.gz class-refresh-7a7f88fcf941c9aca05e235470fc6a43abaf32a3.zip |
tests for reloading roles
Diffstat (limited to 't/moose-roles.t')
-rw-r--r-- | t/moose-roles.t | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/t/moose-roles.t b/t/moose-roles.t new file mode 100644 index 0000000..89659d4 --- /dev/null +++ b/t/moose-roles.t @@ -0,0 +1,58 @@ +#!/usr/bin/env perl +use strict; +use warnings; +use Test::More; +use Test::Requires 'Moose'; +use lib 't/lib'; +use Test::Class::Refresh; + +use Class::Refresh; + +my $dir = prepare_temp_dir_for('moose-roles'); +push @INC, $dir->dirname; + +our %reloads; + +require Foo; +require Bar; +require Baz; + +Class::Refresh->refresh; + +is_deeply([sort map { $_->name } Foo->meta->get_all_attributes], + ['foo', 'foo_role1'], + "correct starting attr list"); +is_deeply([sort map { $_->name } Bar->meta->get_all_attributes], + ['bar', 'bar_role', 'foo_role1'], + "correct starting attr list"); +is_deeply([sort map { $_->name } Baz->meta->get_all_attributes], + ['bar_role', 'baz', 'baz_role', 'foo_role1'], + "correct starting attr list"); +is_deeply(\%reloads, + { foo => 1, foo_role => 1, + bar => 1, bar_role => 1, + baz => 1, baz_role => 1 }, + "everything loaded"); + + +sleep 2; +update_temp_dir_for('moose-roles', $dir); + +Class::Refresh->refresh; + +is_deeply([sort map { $_->name } Foo->meta->get_all_attributes], + ['foo', 'foo_role2'], + "correct starting attr list"); +is_deeply([sort map { $_->name } Bar->meta->get_all_attributes], + ['bar', 'bar_role', 'foo_role2'], + "correct starting attr list"); +is_deeply([sort map { $_->name } Baz->meta->get_all_attributes], + ['bar_role', 'baz', 'baz_role', 'foo_role2'], + "correct starting attr list"); +is_deeply(\%reloads, + { foo => 2, foo_role => 2, + bar => 2, bar_role => 2, + baz => 2, baz_role => 1 }, + "everything reloaded"); + +done_testing; |