The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl

use strict;
use warnings;

use Test::More tests => 12;

my $class = 'Protocol::XMLRPC::Value::Integer';

use_ok($class);

is($class->type, 'int');

my $value = $class->new('12');
is($value->value,     12);
is($value->to_string, '<i4>12</i4>');

$value = $class->new(0);
is($value->to_string, '<i4>0</i4>');

$value = $class->new('12', alias => 'int');
is($value->to_string, '<int>12</int>');

$value = $class->new('-12');
is($value->to_string, '<i4>-12</i4>');

$value = $class->new('-00012');
is($value->to_string, '<i4>-12</i4>');

eval { $value = $class->parse(); };
ok($@);

eval { $value = $class->parse('abc'); };
ok($@);

eval { $value = $class->parse('12.12'); };
ok($@);

ok($class->parse('-12'));