NAME
    Test::TypeConstraints - testing whether some value is valid as
    (Moose|Mouse)::Meta::TypeConstraint

SYNOPSIS
      use Test::TypeConstraints qw(type_isa);

      type_isa($got, "ArrayRef[Int]", "type should be ArrayRef[Int]");

DESCRIPTION
    Test::TypeConstraints is for testing whether some value is valid as
    (Moose|Mouse)::Meta::TypeConstraint.

METHOD
  type_isa($got, $typename_or_type, $test_name, %options)
        $got is value for checking.
        $typename_or_type is a Classname or Mouse::Meta::TypeConstraint name or "Mouse::Meta::TypeConstraint" object or "Moose::Meta::TypeConstraint::Class" object.
        %options is Hash. value is followings:

   coerce: Bool or CodeRef
    If true, it will try coercion when checking a value.

    If a CodeRef is given, it will be run and passed in the coerced value
    for additional testing.

        type_isa $value, "Some::Class", "coerce to Some::Class", coerce => sub {
            isa_ok $_[0], "Some::Class";
            is $_[0]->value, $value;
        };

  type_does($got, $rolename_or_role, $test_name, %options)
        $got is value for checking.
        $typename_or_type is a Classname or Mouse::Meta::TypeConstraint name or "Mouse::Meta::TypeConstraint" object or "Moose::Meta::TypeConstraint::Role" object.
        %options is Hash. value is followings:

   coerce: Bool or CodeRef
    Same as type_isa's coerce option.

  type_isnt($got, $typename_or_type, $test_name, %options)
  type_doesnt($got, $rolename_or_role, $test_name, %options)
    The opposite of "type_isa" and "type_doesnt" respectively and takes the
    same arguments and options. Checks that $got is *not* of the given type
    or role.

AUTHOR
    Keiji Yoshimi <walf443 at gmail dot com>

THANKS TO
     schwern
     gfx
     tokuhirom

SEE ALSO
    +<Mouse::Util::TypeConstraints>, +<Moose::Util::TypeConstraints>

LICENSE
    This library is free software; you can redistribute it and/or modify it
    under the same terms as Perl itself.