All these evals do is hide when Moose or some other module has a syntax error.
[gitmo/Moose.git] / t / 010_basics / 009_import_unimport.t
CommitLineData
31f8ec72 1#!/usr/bin/perl
2
3use strict;
4use warnings;
5
7ff56534 6use Test::More tests => 46;
7
31f8ec72 8
31f8ec72 9my @moose_exports = qw(
10 extends with
11 has
12 before after around
3279ab4a 13 override
14 augment
2a0f3bd3 15 super inner
5a3217de 16 make_immutable
31f8ec72 17);
18
19{
20 package Foo;
31f8ec72 21
31f8ec72 22 use Moose;
dbdd0591 23}
31f8ec72 24
25can_ok('Foo', $_) for @moose_exports;
26
dbdd0591 27{
31f8ec72 28 package Foo;
29 no Moose;
dbdd0591 30}
31f8ec72 31
3279ab4a 32ok(!Foo->can($_), '... Foo can no longer do ' . $_) for @moose_exports;
3279ab4a 33
571dd39f 34# and check the type constraints as well
35
36my @moose_type_constraint_exports = qw(
37 type subtype as where message
38 coerce from via
39 enum
40 find_type_constraint
41);
42
43{
44 package Bar;
571dd39f 45
571dd39f 46 use Moose::Util::TypeConstraints;
dbdd0591 47}
571dd39f 48
49can_ok('Bar', $_) for @moose_type_constraint_exports;
50
dbdd0591 51{
571dd39f 52 package Bar;
53 no Moose::Util::TypeConstraints;
dbdd0591 54}
571dd39f 55
56ok(!Bar->can($_), '... Bar can no longer do ' . $_) for @moose_type_constraint_exports;
57