.\" Automatically generated by Pod::Man 4.07 (Pod::Simple 3.32) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .if !\nF .nr F 0 .if \nF>0 \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} .\} .\" ======================================================================== .\" .IX Title "Test::Deep::Type 3pm" .TH Test::Deep::Type 3pm "2016-10-13" "perl v5.24.1" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Test::Deep::Type \- A Test::Deep plugin for validating type constraints .SH "VERSION" .IX Header "VERSION" version 0.008 .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 4 \& use Test::More; \& use Test::Deep; \& use Test::Deep::Type; \& use MooseX::Types::Moose \*(AqStr\*(Aq; \& \& cmp_deeply( \& { \& message => \*(Aqack I am slain\*(Aq, \& counter => 123, \& }, \& { \& message => is_type(Str), \& counter => is_type(sub { die "not an integer" unless int($_[0]) eq $_[0] }), \& }, \& \*(Aqmessage is a plain string, counter is a number\*(Aq, \& ); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" This is a Test::Deep plugin that provides the sub \f(CW\*(C`is_type\*(C'\fR to indicate that the data being tested must validate against the passed type. This is an actual type \&\fIobject\fR, not a string name \*(-- for example something provided via MooseX::Types, or a plain old coderef that returns a bool (such as what might be used in a Moo type constraint). .SH "FUNCTIONS" .IX Header "FUNCTIONS" .ie n .SS """is_type""" .el .SS "\f(CWis_type\fP" .IX Subsection "is_type" Exported by default; to be used within a Test::Deep comparison function such as cmp_deeply. As this module aims to be a solution for many popular type systems, we attempt to use the type in multiple ways: .IP "MooseX::Types/Moose::Meta::TypeConstraint\-style types:" 4 .IX Item "MooseX::Types/Moose::Meta::TypeConstraint-style types:" If the \f(CW\*(C`validate\*(C'\fR method exists, it is invoked on the type object with the data as its parameter (which should return \f(CW\*(C`undef\*(C'\fR on success, and the error message on failure). .IP "coderef/Moo\-style types:" 4 .IX Item "coderef/Moo-style types:" If the type appears to be or act like a coderef (either a coderef, blessed or unblessed, or possesses a coderef overload) the type is invoked as a sub, with the data as its parameter. Its return value is treated as a boolean; if it also dies with a message describing the failure, this message is used in the failure diagnostics. .Sp Type::Tiny types fall into this category, and are fully supported. .SH "CAVEATS" .IX Header "CAVEATS" Regular strings describing a type under a particular system (e.g. Moose, Params::Validate) are not currently supported. .SH "SEE ALSO" .IX Header "SEE ALSO" .IP "\(bu" 4 Test::Deep .IP "\(bu" 4 Test::TypeConstraints .IP "\(bu" 4 Test::Type .IP "\(bu" 4 Test::Deep::Matcher .IP "\(bu" 4 MooseX::Types .IP "\(bu" 4 Moose::Meta::TypeConstraint .IP "\(bu" 4 Moo .IP "\(bu" 4 Type::Tiny .SH "SUPPORT" .IX Header "SUPPORT" Bugs may be submitted through the \s-1RT\s0 bug tracker (or bug\-Test\-Deep\-Type@rt.cpan.org ). .PP There is also a mailing list available for users of this distribution, at . .PP There is also an irc channel available for users of this distribution, at \&\f(CW\*(C`#perl\*(C'\fR on \f(CW\*(C`irc.perl.org\*(C'\fR . .PP I am also usually active on irc, as 'ether' at \f(CW\*(C`irc.perl.org\*(C'\fR. .SH "AUTHOR" .IX Header "AUTHOR" Karen Etheridge .SH "CONTRIBUTOR" .IX Header "CONTRIBUTOR" Graham Knop .SH "COPYRIGHT AND LICENCE" .IX Header "COPYRIGHT AND LICENCE" This software is copyright (c) 2013 by Karen Etheridge. .PP This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.