latest moose inlining destructor by default
[gitmo/Mouse.git] / t / 000-recipes / 001_point.t
index 3b7831d..1f52f0f 100644 (file)
@@ -3,14 +3,19 @@
 use strict;
 use warnings;
 
-use Test::More tests => 58;
-use Mouse::Util;
-use t::Exception;
-
+use Test::More;
 BEGIN {
-    use_ok('Mouse');           
+    if (eval "require Class::Method::Modifiers; 1") {
+        plan tests => 59;
+    }
+    else {
+        plan skip_all => "Class::Method::Modifiers required for this test";
+    }
 }
 
+use Mouse::Util;
+use Test::Exception;
+
 {
        package Point;  
        use Mouse;
@@ -24,6 +29,7 @@ BEGIN {
            $self->y(0);    
        }
        
+    __PACKAGE__->meta->make_immutable();
 }{     
        package Point3D;
        use Mouse;
@@ -37,6 +43,7 @@ BEGIN {
            $self->{z} = 0;
        };
        
+    __PACKAGE__->meta->make_immutable();
 }
 
 my $point = Point->new(x => 1, y => 2);        
@@ -127,16 +134,16 @@ is_deeply(
        [ 'Mouse::Object' ],
        '... Point got the automagic base class');
 
-my @Point_methods = qw(meta new x y clear);
+my @Point_methods = qw(meta new x y clear DESTROY);
 my @Point_attrs   = ('x', 'y');
 
-SKIP: {
-    skip "Mouse has no method introspection", 2 + @Point_methods;
+is_deeply(
+    [ sort @Point_methods                 ],
+    [ sort Point->meta->get_method_list() ],
+    '... we match the method list for Point');
 
-    is_deeply(
-        [ sort @Point_methods                 ],
-        [ sort Point->meta->get_method_list() ],
-        '... we match the method list for Point');
+SKIP: {
+    skip "Mouse has no method introspection", 1 + @Point_methods;
         
     is_deeply(
         [ sort @Point_attrs                      ],
@@ -167,7 +174,7 @@ is_deeply(
        [ 'Point' ],
        '... Point3D gets the parent given to it');
 
-my @Point3D_methods = qw(new meta clear);
+my @Point3D_methods = qw(new meta clear DESTROY);
 my @Point3D_attrs   = ('z');
 
 SKIP: {