Mouse::Util::does_role() respects $thing->does() method
[gitmo/Mouse.git] / t / 300_immutable / 012_default_values.t
CommitLineData
16504b15 1#!/usr/bin/perl
2# This is automatically generated by author/import-moose-test.pl.
3# DO NOT EDIT THIS FILE. ANY CHANGES WILL BE LOST!!!
4use t::lib::MooseCompat;
5
6use strict;
7use warnings;
8
9use Test::More;
10use Test::Exception;
11
12{
13
14 package Foo;
15 use Mouse;
16
17 has 'foo' => ( is => 'rw', default => q{'} );
18 has 'bar' => ( is => 'rw', default => q{\\} );
19 has 'baz' => ( is => 'rw', default => q{"} );
20 has 'buz' => ( is => 'rw', default => q{"'\\} );
21 has 'faz' => ( is => 'rw', default => qq{\0} );
22
23 ::lives_ok { __PACKAGE__->meta->make_immutable }
24 'no errors making a package immutable when it has default values that could break quoting';
25}
26
27my $foo = Foo->new;
28is( $foo->foo, q{'},
29 'default value for foo attr' );
30is( $foo->bar, q{\\},
31 'default value for bar attr' );
32is( $foo->baz, q{"},
33 'default value for baz attr' );
34is( $foo->buz, q{"'\\},
35 'default value for buz attr' );
36is( $foo->faz, qq{\0},
37 'default value for faz attr' );
38
39
40# Lazy attrs were never broken, but it doesn't hurt to test that they
41# won't be broken by any future changes.
42{
43
44 package Bar;
45 use Mouse;
46
47 has 'foo' => ( is => 'rw', default => q{'}, lazy => 1 );
48 has 'bar' => ( is => 'rw', default => q{\\}, lazy => 1 );
49 has 'baz' => ( is => 'rw', default => q{"}, lazy => 1 );
50 has 'buz' => ( is => 'rw', default => q{"'\\}, lazy => 1 );
51 has 'faz' => ( is => 'rw', default => qq{\0}, lazy => 1 );
52
53 ::lives_ok { __PACKAGE__->meta->make_immutable }
54 'no errors making a package immutable when it has lazy default values that could break quoting';
55}
56
57my $bar = Bar->new;
58is( $bar->foo, q{'},
59 'default value for foo attr' );
60is( $bar->bar, q{\\},
61 'default value for bar attr' );
62is( $bar->baz, q{"},
63 'default value for baz attr' );
64is( $bar->buz, q{"'\\},
65 'default value for buz attr' );
66is( $bar->faz, qq{\0},
67 'default value for faz attr' );
68
69done_testing;