Revert "convert all uses of Test::Exception to Test::Fatal."
[gitmo/Class-MOP.git] / t / 047_rebless_with_extra_params.t
index a7842d4..17af892 100644 (file)
@@ -1,26 +1,22 @@
-#!/usr/bin/perl
-
 use strict;
 use warnings;
 
-use Test::More tests => 22;
+use Test::More;
 use Test::Exception;
 
-BEGIN {
-    use_ok('Class::MOP');
-}
+use Class::MOP;
 
 {
     package Foo;
     use metaclass;
     Foo->meta->add_attribute('bar' => (reader => 'bar'));
-    
+
     sub new { (shift)->meta->new_object(@_) }
-    
+
     package Bar;
     use metaclass;
     use base 'Foo';
-    Bar->meta->add_attribute('baz' => (reader => 'baz', default => 'BAZ'));    
+    Bar->meta->add_attribute('baz' => (reader => 'baz', default => 'BAZ'));
 }
 
 # normal ...
@@ -38,6 +34,12 @@ BEGIN {
     is($foo->bar, 'BAR', '... got the expect value');
     ok($foo->can('baz'), '... we have baz method now');
     is($foo->baz, 'BAZ', '... got the expect value');
+
+    lives_ok {
+        Foo->meta->rebless_instance_back($foo)
+    } '... this works';
+    is($foo->bar, 'BAR', '... got the expect value');
+    ok(!$foo->can('baz'), '... no baz method though');
 }
 
 # with extra params ...
@@ -55,6 +57,14 @@ BEGIN {
     is($foo->bar, 'BAR', '... got the expect value');
     ok($foo->can('baz'), '... we have baz method now');
     is($foo->baz, 'FOO-BAZ', '... got the expect value');
+
+    lives_ok {
+        Foo->meta->rebless_instance_back($foo)
+    } '... this works';
+
+    is($foo->bar, 'BAR', '... got the expect value');
+    ok(!$foo->can('baz'), '... no baz method though');
+    ok(!exists($foo->{baz}), '... and the baz attribute was deinitialized');
 }
 
 # with extra params ...
@@ -72,6 +82,14 @@ BEGIN {
     is($foo->bar, 'FOO-BAR', '... got the expect value');
     ok($foo->can('baz'), '... we have baz method now');
     is($foo->baz, 'FOO-BAZ', '... got the expect value');
-}
 
+    lives_ok {
+        Foo->meta->rebless_instance_back($foo)
+    } '... this works';
+
+    is($foo->bar, 'FOO-BAR', '... got the expect value');
+    ok(!$foo->can('baz'), '... no baz method though');
+    ok(!exists($foo->{baz}), '... and the baz attribute was deinitialized');
+}
 
+done_testing;