Commit | Line | Data |
1f5ce14a |
1 | #!/usr/bin/env perl |
2 | # This is automatically generated by author/import-moose-test.pl. |
3 | # DO NOT EDIT THIS FILE. ANY CHANGES WILL BE LOST!!! |
4 | use t::lib::MooseCompat; |
5 | use strict; |
6 | use warnings; |
7 | use Test::More; |
8 | use Test::Mouse; |
9 | use B; |
10 | |
11 | { |
12 | package Foo; |
13 | use Mouse; |
14 | |
15 | has foo => (is => 'ro', default => 100); |
16 | |
17 | sub bar { 100 } |
18 | } |
19 | |
20 | with_immutable { |
21 | my $foo = Foo->new; |
22 | for my $meth (qw(foo bar)) { |
23 | my $val = $foo->$meth; |
24 | my $b = B::svref_2object(\$val); |
25 | my $flags = $b->FLAGS; |
26 | ok($flags & B::SVf_IOK || $flags & B::SVp_IOK, "it's an int"); |
27 | ok(!($flags & B::SVf_POK), "not a string"); |
28 | } |
29 | } 'Foo'; |
30 | |
31 | { |
32 | package Bar; |
33 | use Mouse; |
34 | |
35 | has foo => (is => 'ro', lazy => 1, default => 100); |
36 | |
37 | sub bar { 100 } |
38 | } |
39 | |
40 | with_immutable { |
41 | my $bar = Bar->new; |
42 | for my $meth (qw(foo bar)) { |
43 | my $val = $bar->$meth; |
44 | my $b = B::svref_2object(\$val); |
45 | my $flags = $b->FLAGS; |
46 | ok($flags & B::SVf_IOK || $flags & B::SVp_IOK, "it's an int"); |
47 | ok(!($flags & B::SVf_POK), "not a string"); |
48 | } |
49 | } 'Bar'; |
50 | |
51 | { |
52 | package Baz; |
53 | use Mouse; |
54 | |
55 | has foo => (is => 'ro', isa => 'Int', lazy => 1, default => 100); |
56 | |
57 | sub bar { 100 } |
58 | } |
59 | |
60 | with_immutable { |
61 | my $baz = Baz->new; |
62 | for my $meth (qw(foo bar)) { |
63 | my $val = $baz->$meth; |
64 | my $b = B::svref_2object(\$val); |
65 | my $flags = $b->FLAGS; |
66 | ok($flags & B::SVf_IOK || $flags & B::SVp_IOK, "it's an int"); |
67 | ok(!($flags & B::SVf_POK), "not a string"); |
68 | } |
69 | } 'Baz'; |
70 | |
71 | { |
72 | package Foo2; |
73 | use Mouse; |
74 | |
75 | has foo => (is => 'ro', default => 10.5); |
76 | |
77 | sub bar { 10.5 } |
78 | } |
79 | |
80 | with_immutable { |
81 | my $foo2 = Foo2->new; |
82 | for my $meth (qw(foo bar)) { |
83 | my $val = $foo2->$meth; |
84 | my $b = B::svref_2object(\$val); |
85 | my $flags = $b->FLAGS; |
86 | ok($flags & B::SVf_NOK || $flags & B::SVp_NOK, "it's a num"); |
87 | ok(!($flags & B::SVf_POK), "not a string"); |
88 | } |
89 | } 'Foo2'; |
90 | |
91 | { |
92 | package Bar2; |
93 | use Mouse; |
94 | |
95 | has foo => (is => 'ro', lazy => 1, default => 10.5); |
96 | |
97 | sub bar { 10.5 } |
98 | } |
99 | |
100 | with_immutable { |
101 | my $bar2 = Bar2->new; |
102 | for my $meth (qw(foo bar)) { |
103 | my $val = $bar2->$meth; |
104 | my $b = B::svref_2object(\$val); |
105 | my $flags = $b->FLAGS; |
106 | ok($flags & B::SVf_NOK || $flags & B::SVp_NOK, "it's a num"); |
107 | ok(!($flags & B::SVf_POK), "not a string"); |
108 | } |
109 | } 'Bar2'; |
110 | |
111 | { |
112 | package Baz2; |
113 | use Mouse; |
114 | |
115 | has foo => (is => 'ro', isa => 'Num', lazy => 1, default => 10.5); |
116 | |
117 | sub bar { 10.5 } |
118 | } |
119 | |
120 | with_immutable { |
121 | my $baz2 = Baz2->new; |
122 | for my $meth (qw(foo bar)) { |
123 | my $val = $baz2->$meth; |
124 | my $b = B::svref_2object(\$val); |
125 | my $flags = $b->FLAGS; |
126 | ok($flags & B::SVf_NOK || $flags & B::SVp_NOK, "it's a num"); |
127 | ok(!($flags & B::SVf_POK), "not a string"); |
128 | } |
129 | } 'Baz2'; |
130 | |
131 | done_testing; |