NAME

Assert::Refute::T::Scalar - Assertions about scalars for Assert::Refute suite.

SYNOPSIS

Currently only one check exists in this package, maybe_is.

use Test::More;
use Assert::Refute::T::Scalar;

maybe_is $foo, undef,          'Only passes if $foo is undefined';
maybe_is $bar, 42,             'Only if undef or exact match';
maybe_is $baz, qr/.../,        'Only if undef or matches regex';
maybe_is $quux, sub { ok $_ }, 'Only if all refutations hold for $_';

done_testing;

EXPORTS

All of the below functions are exported by default:

maybe_is $value, $condition, "message"

Pass if value is undef, apply condition otherwise.

Condition can be:

  • undef - only undefined value fits;

  • a plain scalar - an exact match expected (think is);

  • a regular expression - match it (think like);

  • anything else - assume it's subcontract. The value in question will be passed as both an argument and $_.

[EXPERIMENTAL] This function may be removed for good if it turns out too complex (see smartmatch debacle in Perl 5.27.7).

LICENSE AND COPYRIGHT

This module is part of Assert::Refute suite.

Copyright 2017-2018 Konstantin S. Uvarin. <khedin at cpan.org>

This program is free software; you can redistribute it and/or modify it under the terms of the the Artistic License (2.0). You may obtain a copy of the full license at:

http://www.perlfoundation.org/artistic_license_2_0