From 7a7f88fcf941c9aca05e235470fc6a43abaf32a3 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Tue, 5 Apr 2011 22:42:32 -0500 Subject: tests for reloading roles --- t/moose-roles.t | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 t/moose-roles.t (limited to 't/moose-roles.t') 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; -- cgit v1.2.3-54-g00ecf