[libtype-tiny-perl] 11/14: tests for Type::Library error messages
Jonas Smedegaard
dr at jones.dk
Fri May 30 17:41:31 UTC 2014
This is an automated email from the git hooks/post-receive script.
js pushed a commit to tag 0.043_03
in repository libtype-tiny-perl.
commit f6dc0cf13724e0ac6aecc32d26946a5de1517037
Author: Toby Inkster <mail at tobyinkster.co.uk>
Date: Tue May 6 21:07:25 2014 +0100
tests for Type::Library error messages
---
t/20-unit/Type-Library/errors.t | 66 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 66 insertions(+)
diff --git a/t/20-unit/Type-Library/errors.t b/t/20-unit/Type-Library/errors.t
new file mode 100644
index 0000000..6cfd095
--- /dev/null
+++ b/t/20-unit/Type-Library/errors.t
@@ -0,0 +1,66 @@
+=pod
+
+=encoding utf-8
+
+=head1 PURPOSE
+
+Tests errors thrown by L<Type::Library>.
+
+=head1 AUTHOR
+
+Toby Inkster E<lt>tobyink at cpan.orgE<gt>.
+
+=head1 COPYRIGHT AND LICENCE
+
+This software is copyright (c) 2013-2014 by Toby Inkster.
+
+This is free software; you can redistribute it and/or modify it under
+the same terms as the Perl 5 programming language system itself.
+
+=cut
+
+use strict;
+use warnings;
+use lib qw( ./lib ./t/lib ../inc ./inc );
+
+use Test::More;
+use Test::Fatal;
+
+use Type::Library -base;
+use Type::Tiny;
+
+my $e1 = exception {
+ my $m = __PACKAGE__->meta;
+ $m->add_type(name => 'Foo');
+ $m->add_type(name => 'Foo');
+};
+
+like(
+ $e1,
+ qr/^Type Foo already exists in this library/,
+ 'cannot add same type constraint twice',
+);
+
+my $e2 = exception {
+ my $m = __PACKAGE__->meta;
+ $m->add_type(constraint => sub { 0 });
+};
+
+like(
+ $e2,
+ qr/^Cannot add anonymous type to a library/,
+ 'cannot add an anonymous type constraint to a library',
+);
+
+my $e3 = exception {
+ my $m = __PACKAGE__->meta;
+ $m->add_coercion(name => 'Foo');
+};
+
+like(
+ $e3,
+ qr/^Coercion Foo conflicts with type of same name/,
+ 'cannot add a coercion with same name as a constraint',
+);
+
+done_testing;
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-perl/packages/libtype-tiny-perl.git
More information about the Pkg-perl-cvs-commits
mailing list