make this a bit more extensible, for moose's benefit
[gitmo/Class-MOP.git] / t / 090_no_meta_method.t
CommitLineData
cdf923f8 1#!/usr/bin/env perl
2use strict;
3use warnings;
4use Test::More;
5use Test::Exception;
6use Class::MOP;
7
8{
c63cad06 9 {
10 package Foo;
11 use metaclass no_meta => 1;
12 }
13
14 my $meta = Class::MOP::class_of('Foo');
15 ok(!$meta->has_method('meta'), "no meta method was installed");
16 $meta->add_method(meta => sub { die 'META' });
17 lives_ok { $meta->find_method_by_name('meta') } "can do meta-level stuff";
18 lives_ok { $meta->make_immutable } "can do meta-level stuff";
19 lives_ok { $meta->class_precedence_list } "can do meta-level stuff";
cdf923f8 20}
21
c63cad06 22{
23 my $meta = Class::MOP::Class->create('Bar', no_meta => 1);
24 ok(!$meta->has_method('meta'), "no meta method was installed");
25 $meta->add_method(meta => sub { die 'META' });
26 lives_ok { $meta->find_method_by_name('meta') } "can do meta-level stuff";
27 lives_ok { $meta->make_immutable } "can do meta-level stuff";
28 lives_ok { $meta->class_precedence_list } "can do meta-level stuff";
29}
cdf923f8 30
31done_testing;