[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