#!perl # This unit tests whether ad-hoc ("free") enumerations work as expected. use Test::More tests => 13; use Enumeration; my $e = new Enumeration qw(this is a test); $e->set('this'); ok $e->is('this') => 'is query'; ok !$e->is('test') => 'is query mismatch'; ok $e->is_any('is', 'a', 'this') => 'is_any query'; ok !$e->is_any('is', 'a', 'test') => 'is_any query mismatch'; ok $e->is_none('is', 'a', 'test') => 'is_none query'; ok !$e->is_none('is', 'a', 'this') => 'is_none query mismatch'; eval { $e->is('wonko'); }; like $@, qr/\A"wonko" is not an allowable value/, 'is (unallowed value)'; eval { $e->is_any('wonko'); }; like $@, qr/\A"wonko" is not an allowable value/, 'is_any (unallowed value)'; eval { $e->is_none('wonko'); }; like $@, qr/\A"wonko" is not an allowable value/, 'is_none (unallowed value)'; is $e->bare_value, 'this', 'bare_value'; is $e->value, 'Enumeration::this', 'value'; $e->set('a'); is $e->value, 'Enumeration::a', 'set'; eval { $e->set('wonko'); }; like $@, qr/\A"wonko" is not an allowable value/, 'set (unallowed value)';