summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2013-06-25 13:24:03 -0400
committerJesse Luehrs <doy@tozt.net>2013-06-25 13:24:03 -0400
commit4557c62c6c1b120e553fb3ef2dad8a7655013b7b (patch)
tree02952aabbfdc22b3901fa727ae630385974b3d73
parent3f09a1600bfa43d0d6c1716789d726c815ff9eda (diff)
downloadclass-refresh-4557c62c6c1b120e553fb3ef2dad8a7655013b7b.tar.gz
class-refresh-4557c62c6c1b120e553fb3ef2dad8a7655013b7b.zip
failing tests
-rw-r--r--t/data/moose-late-load/after/Foo.pm10
-rw-r--r--t/data/moose-late-load/after/Foo/Immutable.pm11
-rw-r--r--t/data/moose-late-load/before/Foo.pm10
-rw-r--r--t/data/moose-late-load/before/Foo/Immutable.pm11
-rw-r--r--t/data/moose-late-load/middle/Foo.pm10
-rw-r--r--t/data/moose-late-load/middle/Foo/Immutable.pm11
-rw-r--r--t/moose-late-load.t68
7 files changed, 131 insertions, 0 deletions
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;