1#!perl -T
2
3use warnings;
4use strict;
5
6use Test::More tests => 10;
7
8use Carp::Assert::More;
9
10my %foo = (
11    name  => 'Andy Lester',
12    phone => '578-3338',
13    wango => undef,
14);
15
16
17eval {
18    assert_exists( \%foo, 'name' );
19};
20is( $@, '' );
21
22
23eval {
24    assert_exists( \%foo, 'wango' );
25};
26is( $@, '' );
27
28
29eval {
30    assert_exists( \%foo, 'Nonexistent' );
31};
32like( $@, qr/Assert.+failed/ );
33
34# Fails if list of keys to check is undef.
35eval {
36    assert_exists( \%foo, undef );
37};
38like( $@, qr/Assert.+failed/ );
39
40# Fails if list of keys to check is not an array.
41eval {
42    assert_exists( \%foo, {} );
43};
44like( $@, qr/Assert.+failed/ );
45
46# Fails with empty list of keys to check.
47eval {
48    assert_exists( \%foo, [] );
49};
50like( $@, qr/Assert.+failed/ );
51
52eval {
53    assert_exists( \%foo, [qw( name )] );
54};
55is( $@, '' );
56
57eval {
58    assert_exists( \%foo, [qw( name social-security-number )] );
59};
60like( $@, qr/Assertion.+failed/ );
61
62eval {
63    assert_exists( \%foo, [qw( name phone )] );
64};
65is( $@, '' );
66
67
68eval {
69    assert_exists( \%foo, ['name','Nonexistent'] );
70};
71like( $@, qr/Assert.+failed/ );
72