The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

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.