Changelogging
[gitmo/Mouse.git] / t / 010_basics / 013_create.t
CommitLineData
60ad2cb7 1#!/usr/bin/perl
fde8e43f 2# This is automatically generated by author/import-moose-test.pl.
3# DO NOT EDIT THIS FILE. ANY CHANGES WILL BE LOST!!!
4use t::lib::MooseCompat;
60ad2cb7 5
6use strict;
7use warnings;
8
fde8e43f 9use Test::More;
60ad2cb7 10use Test::Exception;
11
12{
13 package Class;
14 use Mouse;
15
16 package Foo;
17 use Mouse::Role;
18 sub foo_role_applied { 1 }
19
20 package Conflicts::With::Foo;
21 use Mouse::Role;
22 sub foo_role_applied { 0 }
23
24 package Not::A::Role;
25 sub lol_wut { 42 }
26}
27
28my $new_class;
29
30lives_ok {
31 $new_class = Mouse::Meta::Class->create(
32 'Class::WithFoo',
33 superclasses => ['Class'],
34 roles => ['Foo'],
35 );
36} 'creating lives';
37ok $new_class;
38
39my $with_foo = Class::WithFoo->new;
40
41ok $with_foo->foo_role_applied;
42isa_ok $with_foo, 'Class', '$with_foo';
43
44throws_ok {
45 Mouse::Meta::Class->create(
46 'Made::Of::Fail',
47 superclasses => ['Class'],
48 roles => 'Foo', # "oops"
49 );
50} qr/You must pass an ARRAY ref of roles/;
51
fde8e43f 52ok !Made::Of::Fail->isa('UNIVERSAL'), "did not create Made::Of::Fail";
60ad2cb7 53
54dies_ok {
55 Mouse::Meta::Class->create(
56 'Continuing::To::Fail',
57 superclasses => ['Class'],
58 roles => ['Foo', 'Conflicts::With::Foo'],
59 );
60} 'conflicting roles == death';
61
62# XXX: Continuing::To::Fail gets created anyway
63
fde8e43f 64done_testing;