remove redundant constructors from MOP.pm
[gitmo/Class-MOP.git] / t / 031_method_modifiers.t
index 5dee918..8b42875 100644 (file)
@@ -15,7 +15,11 @@ BEGIN {
 {
        my $trace = '';
 
-       my $method = Class::MOP::Method->new(sub { $trace .= 'primary' });
+       my $method = Class::MOP::Method->wrap(
+           body         => sub { $trace .= 'primary' },
+           package_name => 'main',
+           name         => '__ANON__',
+       );
        isa_ok($method, 'Class::MOP::Method');
 
        $method->();
@@ -49,7 +53,11 @@ BEGIN {
 
 # test around method
 {
-       my $method = Class::MOP::Method->new(sub { 4 });
+       my $method = Class::MOP::Method->wrap(
+           sub { 4 },
+           package_name => 'main',
+           name         => '__ANON__', 
+       );
        isa_ok($method, 'Class::MOP::Method');
        
        is($method->(), 4, '... got the right value from the wrapped method');  
@@ -78,7 +86,11 @@ BEGIN {
 {
        my @tracelog;
        
-       my $method = Class::MOP::Method->new(sub { push @tracelog => 'primary' });
+       my $method = Class::MOP::Method->wrap(
+           sub { push @tracelog => 'primary' },
+           package_name => 'main',
+           name         => '__ANON__', 
+       );
        isa_ok($method, 'Class::MOP::Method');
        
        my $wrapped = Class::MOP::Method::Wrapped->wrap($method);
@@ -92,15 +104,15 @@ BEGIN {
        } '... added the before modifier okay';
        
        lives_ok {
-               $wrapped->add_around_modifier(sub { push @tracelog => 'around 3'; $_[0]->(); });                
+               $wrapped->add_around_modifier(sub { push @tracelog => 'around 1'; $_[0]->(); });                
                $wrapped->add_around_modifier(sub { push @tracelog => 'around 2'; $_[0]->(); });
-               $wrapped->add_around_modifier(sub { push @tracelog => 'around 1'; $_[0]->(); });                                                
+               $wrapped->add_around_modifier(sub { push @tracelog => 'around 3'; $_[0]->(); });                                                
        } '... added the around modifier okay'; 
        
        lives_ok {
-               $wrapped->add_after_modifier(sub { push @tracelog => 'after 3' });
+               $wrapped->add_after_modifier(sub { push @tracelog => 'after 1' });
                $wrapped->add_after_modifier(sub { push @tracelog => 'after 2' });
-               $wrapped->add_after_modifier(sub { push @tracelog => 'after 1' });                              
+               $wrapped->add_after_modifier(sub { push @tracelog => 'after 3' });                              
        } '... added the after modifier okay';  
        
        $wrapped->();
@@ -108,9 +120,9 @@ BEGIN {
                \@tracelog,
                [ 
                  'before 3', 'before 2', 'before 1',  # last-in-first-out order
-                 'around 1', 'around 2', 'around 3',  # last-in-first-out order
+                 'around 3', 'around 2', 'around 1',  # last-in-first-out order
                  'primary',
-                 'after 3', 'after 2', 'after 1',     # first-in-first-out order
+                 'after 1', 'after 2', 'after 3',     # first-in-first-out order
                ],
                '... got the right tracelog from all our before/around/after methods');
 }