Convert all tests to done_testing.
[gitmo/Moose.git] / t / 050_metaclasses / 014_goto_moose_import.t
CommitLineData
e16d86b9 1#!/usr/bin/perl
2
3use strict;
4use warnings;
5
a28e50e4 6use Test::More;
e16d86b9 7use Test::Exception;
8
9# Some packages out in the wild cooperate with Moose by using goto
10# &Moose::import. we want to make sure it still works.
11
12{
13 package MooseAlike1;
14
15 use strict;
16 use warnings;
17
18 use Moose ();
19
20 sub import {
21 goto &Moose::import;
22 }
12fd2648 23
24 sub unimport {
25 goto &Moose::unimport;
26 }
e16d86b9 27}
28
29{
30 package Foo;
31
32 MooseAlike1->import();
33
ccd4cff9 34 ::lives_ok( sub { has( 'size', is => 'bare' ) },
e16d86b9 35 'has was exported via MooseAlike1' );
12fd2648 36
37 MooseAlike1->unimport();
e16d86b9 38}
39
12fd2648 40ok( ! Foo->can('has'),
41 'No has sub in Foo after MooseAlike1 is unimported' );
42ok( Foo->can('meta'),
43 'Foo has a meta method' );
44isa_ok( Foo->meta(), 'Moose::Meta::Class' );
45
46
e16d86b9 47{
48 package MooseAlike2;
49
50 use strict;
51 use warnings;
52
53 use Moose ();
54
55 my $import = \&Moose::import;
56 sub import {
57 goto $import;
58 }
12fd2648 59
60 my $unimport = \&Moose::unimport;
61 sub unimport {
62 goto $unimport;
63 }
e16d86b9 64}
65
66{
67 package Bar;
68
69 MooseAlike2->import();
70
ccd4cff9 71 ::lives_ok( sub { has( 'size', is => 'bare' ) },
e16d86b9 72 'has was exported via MooseAlike2' );
e16d86b9 73
12fd2648 74 MooseAlike2->unimport();
75}
e16d86b9 76
77
12fd2648 78ok( ! Bar->can('has'),
79 'No has sub in Bar after MooseAlike2 is unimported' );
80ok( Bar->can('meta'),
81 'Bar has a meta method' );
82isa_ok( Bar->meta(), 'Moose::Meta::Class' );
a28e50e4 83
84done_testing;