X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F603-octal-defaults.t;fp=t%2F603-octal-defaults.t;h=8e414490da57836bcb58919d9923cf5d378f3b63;hb=39c84648f251c030b21bc7ff7a35a83130be9f1a;hp=0000000000000000000000000000000000000000;hpb=5f46c4bd0be3450c60b7405a5eb84f9bb9c221ac;p=gitmo%2FMouse.git diff --git a/t/603-octal-defaults.t b/t/603-octal-defaults.t new file mode 100644 index 0000000..8e41449 --- /dev/null +++ b/t/603-octal-defaults.t @@ -0,0 +1,119 @@ +#!/usr/bin/env perl +use Test::More qw(no_plan); + +# copied straight out of Moose t/100/019 + +{ + my $package = qq{ +package Test::Mouse::Go::Boom; +use Mouse; +use lib qw(lib); + +has id => ( + isa => 'Str', + is => 'ro', + default => '019600', # this caused the original failure +); + +no Mouse; + +__PACKAGE__->meta->make_immutable; +}; + + eval $package; + $@ ? ::fail($@) : ::pass('quoted 019600 default works'); + my $obj = Test::Mouse::Go::Boom->new; + ::is( $obj->id, '019600', 'value is still the same' ); +} + +{ + my $package = qq{ +package Test::Mouse::Go::Boom2; +use Mouse; +use lib qw(lib); + +has id => ( + isa => 'Str', + is => 'ro', + default => 017600, +); + +no Mouse; + +__PACKAGE__->meta->make_immutable; +}; + + eval $package; + $@ ? ::fail($@) : ::pass('017600 octal default works'); + my $obj = Test::Mouse::Go::Boom2->new; + ::is( $obj->id, 8064, 'value is still the same' ); +} + +{ + my $package = qq{ +package Test::Mouse::Go::Boom3; +use Mouse; +use lib qw(lib); + +has id => ( + isa => 'Str', + is => 'ro', + default => 0xFF, +); + +no Mouse; + +__PACKAGE__->meta->make_immutable; +}; + + eval $package; + $@ ? ::fail($@) : ::pass('017600 octal default works'); + my $obj = Test::Mouse::Go::Boom3->new; + ::is( $obj->id, 255, 'value is still the same' ); +} + +{ + my $package = qq{ +package Test::Mouse::Go::Boom4; +use Mouse; +use lib qw(lib); + +has id => ( + isa => 'Str', + is => 'ro', + default => '0xFF', +); + +no Mouse; + +__PACKAGE__->meta->make_immutable; +}; + + eval $package; + $@ ? ::fail($@) : ::pass('017600 octal default works'); + my $obj = Test::Mouse::Go::Boom4->new; + ::is( $obj->id, '0xFF', 'value is still the same' ); +} + +{ + my $package = qq{ +package Test::Mouse::Go::Boom5; +use Mouse; +use lib qw(lib); + +has id => ( + isa => 'Str', + is => 'ro', + default => '0 but true', +); + +no Mouse; + +__PACKAGE__->meta->make_immutable; +}; + + eval $package; + $@ ? ::fail($@) : ::pass('017600 octal default works'); + my $obj = Test::Mouse::Go::Boom5->new; + ::is( $obj->id, '0 but true', 'value is still the same' ); +}