From 4557c62c6c1b120e553fb3ef2dad8a7655013b7b Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Tue, 25 Jun 2013 13:24:03 -0400 Subject: failing tests --- t/data/moose-late-load/after/Foo.pm | 10 ++++ t/data/moose-late-load/after/Foo/Immutable.pm | 11 +++++ t/data/moose-late-load/before/Foo.pm | 10 ++++ t/data/moose-late-load/before/Foo/Immutable.pm | 11 +++++ t/data/moose-late-load/middle/Foo.pm | 10 ++++ t/data/moose-late-load/middle/Foo/Immutable.pm | 11 +++++ t/moose-late-load.t | 68 ++++++++++++++++++++++++++ 7 files changed, 131 insertions(+) create mode 100644 t/data/moose-late-load/after/Foo.pm create mode 100644 t/data/moose-late-load/after/Foo/Immutable.pm create mode 100644 t/data/moose-late-load/before/Foo.pm create mode 100644 t/data/moose-late-load/before/Foo/Immutable.pm create mode 100644 t/data/moose-late-load/middle/Foo.pm create mode 100644 t/data/moose-late-load/middle/Foo/Immutable.pm create mode 100644 t/moose-late-load.t (limited to 't') diff --git a/t/data/moose-late-load/after/Foo.pm b/t/data/moose-late-load/after/Foo.pm new file mode 100644 index 0000000..2f25ab7 --- /dev/null +++ b/t/data/moose-late-load/after/Foo.pm @@ -0,0 +1,10 @@ +package Foo; +use Moose; + +has baz => (is => 'ro'); + +sub other_other_meth { } + +no Moose; + +1; diff --git a/t/data/moose-late-load/after/Foo/Immutable.pm b/t/data/moose-late-load/after/Foo/Immutable.pm new file mode 100644 index 0000000..89e7e7a --- /dev/null +++ b/t/data/moose-late-load/after/Foo/Immutable.pm @@ -0,0 +1,11 @@ +package Foo::Immutable; +use Moose; + +has baz => (is => 'ro'); + +sub other_other_meth { } + +__PACKAGE__->meta->make_immutable; +no Moose; + +1; diff --git a/t/data/moose-late-load/before/Foo.pm b/t/data/moose-late-load/before/Foo.pm new file mode 100644 index 0000000..a63046a --- /dev/null +++ b/t/data/moose-late-load/before/Foo.pm @@ -0,0 +1,10 @@ +package Foo; +use Moose; + +has foo => (is => 'ro'); + +sub meth { } + +no Moose; + +1; diff --git a/t/data/moose-late-load/before/Foo/Immutable.pm b/t/data/moose-late-load/before/Foo/Immutable.pm new file mode 100644 index 0000000..df3fb53 --- /dev/null +++ b/t/data/moose-late-load/before/Foo/Immutable.pm @@ -0,0 +1,11 @@ +package Foo::Immutable; +use Moose; + +has foo => (is => 'ro'); + +sub meth { } + +__PACKAGE__->meta->make_immutable; +no Moose; + +1; diff --git a/t/data/moose-late-load/middle/Foo.pm b/t/data/moose-late-load/middle/Foo.pm new file mode 100644 index 0000000..716b5c8 --- /dev/null +++ b/t/data/moose-late-load/middle/Foo.pm @@ -0,0 +1,10 @@ +package Foo; +use Moose; + +has bar => (is => 'ro'); + +sub other_meth { } + +no Moose; + +1; diff --git a/t/data/moose-late-load/middle/Foo/Immutable.pm b/t/data/moose-late-load/middle/Foo/Immutable.pm new file mode 100644 index 0000000..9fad73d --- /dev/null +++ b/t/data/moose-late-load/middle/Foo/Immutable.pm @@ -0,0 +1,11 @@ +package Foo::Immutable; +use Moose; + +has bar => (is => 'ro'); + +sub other_meth { } + +__PACKAGE__->meta->make_immutable; +no Moose; + +1; diff --git a/t/moose-late-load.t b/t/moose-late-load.t new file mode 100644 index 0000000..ebc33ab --- /dev/null +++ b/t/moose-late-load.t @@ -0,0 +1,68 @@ +#!/usr/bin/env perl +use strict; +use warnings; +use Test::More; +use lib 't/lib'; +use Test::Class::Refresh; + +use Class::Refresh; + +my $dir; +BEGIN { + $dir = prepare_temp_dir_for('moose-late-load'); + push @INC, $dir->dirname; + + Class::Refresh->refresh; +} + +# have to do this later +use Test::Requires 'Moose'; + +require Foo; +require Foo::Immutable; + +is_deeply([Foo->meta->get_attribute_list], ['foo'], + "correct starting attr list"); +can_ok('Foo', 'meth'); +ok(!Foo->can('other_meth'), "!Foo->can('other_meth')"); + +is_deeply([Foo::Immutable->meta->get_attribute_list], ['foo'], + "correct starting attr list"); +can_ok('Foo::Immutable', 'meth'); +ok(!Foo::Immutable->can('other_meth'), "!Foo::Immutable->can('other_meth')"); + + +sleep 2; +update_temp_dir_for('moose-late-load', $dir, 'middle'); + +Class::Refresh->refresh; + +is_deeply([Foo->meta->get_attribute_list], ['bar'], + "correct refreshed attr list"); +can_ok('Foo', 'other_meth'); +ok(!Foo->can('meth'), "!Foo->can('meth')"); + +is_deeply([Foo::Immutable->meta->get_attribute_list], ['bar'], + "correct refreshed attr list"); +can_ok('Foo::Immutable', 'other_meth'); +ok(!Foo::Immutable->can('meth'), "!Foo::Immutable->can('meth')"); + + +sleep 2; +update_temp_dir_for('moose-late-load', $dir, 'after'); + +Class::Refresh->refresh; + +is_deeply([Foo->meta->get_attribute_list], ['baz'], + "correct refreshed attr list"); +can_ok('Foo', 'other_other_meth'); +ok(!Foo->can('meth'), "!Foo->can('meth')"); +ok(!Foo->can('other_meth'), "!Foo->can('other_meth')"); + +is_deeply([Foo::Immutable->meta->get_attribute_list], ['baz'], + "correct refreshed attr list"); +can_ok('Foo::Immutable', 'other_other_meth'); +ok(!Foo::Immutable->can('meth'), "!Foo::Immutable->can('meth')"); +ok(!Foo::Immutable->can('other_meth'), "!Foo::Immutable->can('other_meth')"); + +done_testing; -- cgit v1.2.3-54-g00ecf