# t/007_inputs.t - verify that input conditions are checked properly
#
# $Id: 007_inputs.t,v 1.1 2004/02/18 13:56:28 coar Exp $
#
# CPAN module Convert::ASCIInames
#
# Copyright 2004 Ken A L Coar
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this package or any files in it except in
# compliance with the License. A copy of the License should be
# included as part of the package; the normative version may be
# obtained a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
use Test::More;
use Convert::ASCIInames;
use Carp;
my $res;
my $msg;
#
# Trap the carp() messages for examination.
#
$SIG{__WARN__} = sub {
$msg = $_[0];
};
plan(tests => 9);
Convert::ASCIInames::Configure(strict_ordinals => 1);
$msg = undef;
$res = ASCIIname();
ok($msg =~ /^Null ordinal; using 0x00 at /, "ASCIIname() raised '$msg'");
$msg = undef;
$res = ASCIIname('');
ok($msg =~ /^Null ordinal; using 0x00 at /, "ASCIIname('') raised '$msg'");
$msg = undef;
$res = ASCIIname('+23');
ok((! defined($msg)), "ASCIIname('+23') raised '$msg'");
$msg = undef;
$res = ASCIIname('-23');
ok($msg =~ /^\QIllegal ordinal value (< 0 or > 255); using 255\E/,
"ASCIIname('-23') raised '$msg'");
$msg = undef;
$res = ASCIIname('foo');
ok($msg =~ /^Ordinal is not a positive integer; converting the first character at /,
"ASCIIname('foo') raised '$msg'");
$msg = undef;
$res = ASCIIname(32767);
ok($msg =~ /^\QIllegal ordinal value (< 0 or > 255); using 255\E/,
"ASCIIname(32767) raised '$msg'");
$msg = undef;
$res = ASCIIordinal();
ok($msg =~ /^Null character; using NUL/, "ASCIIordinal() raised '$msg'");
$msg = undef;
$res = ASCIIordinal('');
ok($msg =~ /^Null character; using NUL/, "ASCIIordinal('') raised '$msg'");
Convert::ASCIInames::Configure(strict_ordinals => 0);
$msg = undef;
$res = ASCIIname('foo');
ok((! defined($msg)), "ASCIIname('foo') raised '$msg'");
__END__
#
# Local Variables:
# mode: cperl
# tab-width: 4
# indent-tabs-mode: nil
# End:
#