1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
|
use Test2::Bundle::Extended -target => 'Test2::Tools::Ref';
{
package Temp;
use Test2::Tools::Ref;
main::imported_ok(qw/ref_ok ref_is ref_is_not/);
}
like(
intercept {
ref_ok({});
ref_ok({}, 'HASH', 'pass');
ref_ok([], 'ARRAY', 'pass');
ref_ok({}, 'ARRAY', 'fail');
ref_ok('xxx');
ref_ok('xxx', 'xxx');
},
array {
event Ok => { pass => 1 };
event Ok => { pass => 1 };
event Ok => { pass => 1 };
fail_events Ok => sub { call pass => 0 };
event Diag => { message => qr/'HASH\(.*\)' is not a 'ARRAY' reference/ };
fail_events Ok => { pass => 0 };
event Diag => { message => qr/'xxx' is not a reference/ };
fail_events Ok => { pass => 0 };
event Diag => { message => qr/'xxx' is not a reference/ };
end;
},
"ref_ok tests"
);
my $x = [];
my $y = [];
like(
intercept {
ref_is($x, $x, 'same x');
ref_is($x, $y, 'not same');
ref_is_not($x, $y, 'not same');
ref_is_not($y, $y, 'same y');
ref_is('x', $x, 'no ref');
ref_is($x, 'x', 'no ref');
ref_is_not('x', $x, 'no ref');
ref_is_not($x, 'x', 'no ref');
ref_is(undef, $x, 'undef');
ref_is($x, undef, 'undef');
ref_is_not(undef, $x, 'undef');
ref_is_not($x, undef, 'undef');
},
array {
event Ok => sub { call pass => 1 };
fail_events Ok => sub { call pass => 0 };
event Diag => { message => "'$x' is not the same reference as '$y'" };
event Ok => sub { call pass => 1 };
fail_events Ok => sub { call pass => 0 };
event Diag => { message => "'$y' is the same reference as '$y'" };
fail_events Ok => sub { call pass => 0 };
event Diag => { message => "First argument 'x' is not a reference" };
fail_events Ok => sub { call pass => 0 };
event Diag => { message => "Second argument 'x' is not a reference" };
fail_events Ok => sub { call pass => 0 };
event Diag => { message => "First argument 'x' is not a reference" };
fail_events Ok => sub { call pass => 0 };
event Diag => { message => "Second argument 'x' is not a reference" };
fail_events Ok => sub { call pass => 0 };
event Diag => { message => "First argument '<undef>' is not a reference" };
fail_events Ok => sub { call pass => 0 };
event Diag => { message => "Second argument '<undef>' is not a reference" };
fail_events Ok => sub { call pass => 0 };
event Diag => { message => "First argument '<undef>' is not a reference" };
fail_events Ok => sub { call pass => 0 };
event Diag => { message => "Second argument '<undef>' is not a reference" };
end;
},
"Ref checks"
);
done_testing;
|