add failing test for octal problem
Chris Prather [Fri, 21 Nov 2008 17:01:52 +0000 (17:01 +0000)]
tidy the test some
add test for octal doing the right thing

t/100_bugs/019_moose_octal_defaults.pm [new file with mode: 0644]

diff --git a/t/100_bugs/019_moose_octal_defaults.pm b/t/100_bugs/019_moose_octal_defaults.pm
new file mode 100644 (file)
index 0000000..8cde1e4
--- /dev/null
@@ -0,0 +1,45 @@
+#!/usr/bin/env perl
+use Test::More qw(no_plan);
+
+my $package = qq{
+package Test::Moose::Go::Boom;
+use Moose;
+use lib qw(lib);
+
+has id => (
+    isa     => 'Str',
+    is      => 'ro',
+    default => '019600',  # Moose doesn't quote this when inlining, an perl treats it as an octal ... and 9 isn't a valid octal
+);
+
+no Moose;
+
+__PACKAGE__->meta->make_immutable;
+};
+
+eval $package;
+$@ ? ::fail($@) : ::pass('quoted 019600 default works');
+my $obj = Test::Moose::Go::Boom->new; 
+::is($obj->id, '019600', 'value is still the same');
+
+my $package2 = qq{
+package Test::Moose::Go::Boom2;
+use Moose;
+use lib qw(lib);
+
+has id => (
+    isa     => 'Str',
+    is      => 'ro',
+    default => 017600,  # Moose doesn't quote this when inlining, an perl treats it as an octal ... and 9 isn't a valid octal
+);
+
+no Moose;
+
+__PACKAGE__->meta->make_immutable;
+};
+
+
+eval $package2;
+$@ ? ::fail($@) : ::pass('017600 octal default works');
+my $obj = Test::Moose::Go::Boom2->new; 
+::is($obj->id, 8064, 'value is still the same');
\ No newline at end of file