From 1d247b77ebf9acca2e60e8a0ff614183ae11b483 Mon Sep 17 00:00:00 2001 From: Toby Inkster Date: Sat, 11 Aug 2018 19:40:01 +0100 Subject: [PATCH] Type::Tiny::Duck cmp tests --- t/20-unit/Type-Tiny-Duck/cmp.t | 41 ++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 t/20-unit/Type-Tiny-Duck/cmp.t diff --git a/t/20-unit/Type-Tiny-Duck/cmp.t b/t/20-unit/Type-Tiny-Duck/cmp.t new file mode 100644 index 000000000..ee669e979 --- /dev/null +++ b/t/20-unit/Type-Tiny-Duck/cmp.t @@ -0,0 +1,41 @@ +=pod + +=encoding utf-8 + +=head1 PURPOSE + +Test new type comparison stuff with Type::Tiny::Duck objects. + +=head1 AUTHOR + +Toby Inkster Etobyink@cpan.orgE. + +=head1 COPYRIGHT AND LICENCE + +This software is copyright (c) 2018 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::TypeTiny; +use Type::Utils qw(duck_type); + +my $type1 = duck_type Type1 => [qw( foo bar )]; +my $type2 = duck_type Type2 => [qw( bar foo )]; +my $type3 = duck_type Type3 => [qw( foo bar baz )]; + +ok_subtype($type1 => $type2, $type3); +ok_subtype($type2 => $type1, $type3); +ok($type1->equals($type2)); +ok($type2->equals($type1)); +ok($type3->is_subtype_of($type2)); +ok($type2->is_supertype_of($type3)); + +done_testing;