use strict;
use warnings;
-use Test::More tests => 85;
-use Test::Exception;
+use Test::More;
+use Test::Fatal;
use Scalar::Util ();
ok(!defined($natural->validate(5)), '... validated successfully (no error)');
is($natural->validate(-5),
- "Validation failed for 'Natural' failed with value -5",
+ "Validation failed for 'Natural' with value -5",
'... validated unsuccessfully (got error)');
my $string = find_type_constraint('String');
"This is not a string (5)",
'... validated unsuccessfully (got error)');
-lives_ok { Moose::Meta::Attribute->new('bob', isa => 'Spong') }
- 'meta-attr construction ok even when type constraint utils loaded first';
+is( exception { Moose::Meta::Attribute->new('bob', isa => 'Spong') }, undef, 'meta-attr construction ok even when type constraint utils loaded first' );
# Test type constraint predicate return values.
# Test adding things which don't look like types to the registry throws an exception
my $r = Moose::Util::TypeConstraints->get_type_constraint_registry;
-throws_ok {$r->add_type_constraint()} qr/not a valid type constraint/, '->add_type_constraint(undef) throws';
-throws_ok {$r->add_type_constraint('foo')} qr/not a valid type constraint/, '->add_type_constraint("foo") throws';
-throws_ok {$r->add_type_constraint(bless {}, 'SomeClass')} qr/not a valid type constraint/, '->add_type_constraint(SomeClass->new) throws';
+like( exception {$r->add_type_constraint()}, qr/not a valid type constraint/, '->add_type_constraint(undef) throws' );
+like( exception {$r->add_type_constraint('foo')}, qr/not a valid type constraint/, '->add_type_constraint("foo") throws' );
+like( exception {$r->add_type_constraint(bless {}, 'SomeClass')}, qr/not a valid type constraint/, '->add_type_constraint(SomeClass->new) throws' );
# Test some specific things that in the past did not work,
# specifically weird variations on anon subtypes.
}
{
- throws_ok { subtype 'Foo' } qr/cannot consist solely of a name/,
- 'Cannot call subtype with a single string argument';
+ like( exception { subtype 'Foo' }, qr/cannot consist solely of a name/, 'Cannot call subtype with a single string argument' );
}
# Back-compat for being called without sugar. Previously, calling with
# sugar was indistinguishable from calling directly.
{
+ no warnings 'redefine';
+ *Moose::Deprecated::deprecated = sub { return };
+}
+
+{
my $type = type( 'Number2', sub { Scalar::Util::looks_like_number($_) } );
ok( $type->check(5), '... this is a Num' );
ok( ! $subtype->check('Foo'), '... this is not a Natural');
}
+done_testing;