1 use DBIx::Class::Schema::Loader::Optional::Dependencies
2 -skip_all_without => 'use_moose';
9 use dbixcsl_dumper_tests;
10 my $t = 'dbixcsl_dumper_tests';
14 # first dump a fresh use_moose=1 schema
16 classname => 'DBICTest::DumpMore::1',
19 result_base_class => 'My::ResultBaseClass',
20 schema_base_class => 'My::SchemaBaseClass',
21 result_roles => ['TestRole', 'TestRole2'],
25 qr/\nuse Moose;\nuse MooseX::MarkAsMethods autoclean => 1;\nextends 'My::SchemaBaseClass';\n\n/,
26 qr/\n__PACKAGE__->meta->make_immutable\(inline_constructor => 0\);\n1;(?!\n1;\n)\n.*/,
29 qr/\nuse Moose;\nuse MooseX::NonMoose;\nuse MooseX::MarkAsMethods autoclean => 1;\nextends 'My::ResultBaseClass';\n\n/,
30 qr/=head1 L<Moose> ROLES APPLIED\n\n=over 4\n\n=item \* L<TestRole>\n\n=item \* L<TestRole2>\n\n=back\n\n=cut\n\n/,
31 qr/\nwith 'TestRole', 'TestRole2';\n\n/,
32 qr/\n__PACKAGE__->meta->make_immutable;\n1;(?!\n1;\n)\n.*/,
35 qr/\nuse Moose;\nuse MooseX::NonMoose;\nuse MooseX::MarkAsMethods autoclean => 1;\nextends 'My::ResultBaseClass';\n\n/,
36 qr/=head1 L<Moose> ROLES APPLIED\n\n=over 4\n\n=item \* L<TestRole>\n\n=item \* L<TestRole2>\n\n=back\n\n=cut\n\n/,
37 qr/\nwith 'TestRole', 'TestRole2';\n\n/,
38 qr/\n__PACKAGE__->meta->make_immutable;\n1;(?!\n1;\n)\n.*/,
45 # check protect_overloads works as expected
47 classname => 'DBICTest::DumpMore::1',
54 qr/\nuse namespace::autoclean;\n/,
57 qr/\nuse namespace::autoclean;\n/,
64 # now upgrade a fresh non-moose schema to use_moose=1
66 classname => 'DBICTest::DumpMore::1',
69 result_base_class => 'My::ResultBaseClass',
70 schema_base_class => 'My::SchemaBaseClass',
74 qr/\nuse base 'My::SchemaBaseClass';\n/,
77 qr/\nuse base 'My::ResultBaseClass';\n/,
80 qr/\nuse base 'My::ResultBaseClass';\n/,
85 # check that changed custom content is upgraded for Moose bits
86 $t->append_to_class('DBICTest::DumpMore::1::Foo', q{# XXX This is my custom content XXX});
89 classname => 'DBICTest::DumpMore::1',
92 result_base_class => 'My::ResultBaseClass',
93 schema_base_class => 'My::SchemaBaseClass',
97 qr/\nuse Moose;\nuse MooseX::MarkAsMethods autoclean => 1;\nextends 'My::SchemaBaseClass';\n\n/,
98 qr/\n__PACKAGE__->meta->make_immutable\(inline_constructor => 0\);\n1;(?!\n1;\n)\n.*/,
101 qr/\nuse Moose;\nuse MooseX::NonMoose;\nuse MooseX::MarkAsMethods autoclean => 1;\nextends 'My::ResultBaseClass';\n\n/,
102 qr/\n__PACKAGE__->meta->make_immutable;\n1;(?!\n1;\n)\n.*/,
103 qr/# XXX This is my custom content XXX/,
106 qr/\nuse Moose;\nuse MooseX::NonMoose;\nuse MooseX::MarkAsMethods autoclean => 1;\nextends 'My::ResultBaseClass';\n\n/,
107 qr/\n__PACKAGE__->meta->make_immutable;\n1;(?!\n1;\n)\n.*/,
114 # check with a fresh non-moose schema that Moose custom content added to a use_moose=0 schema is not repeated
116 classname => 'DBICTest::DumpMore::1',
118 result_base_class => 'My::ResultBaseClass',
119 schema_base_class => 'My::SchemaBaseClass',
123 qr/\nuse base 'My::SchemaBaseClass';\n/,
126 qr/\nuse base 'My::ResultBaseClass';\n/,
129 qr/\nuse base 'My::ResultBaseClass';\n/,
134 # add Moose custom content then check it is not repeated
135 # after that regen again *without* the use_moose flag, make
136 # sure moose isn't stripped away
137 $t->append_to_class('DBICTest::DumpMore::1::Foo', qq{use Moose;\n__PACKAGE__->meta->make_immutable;\n1;\n});
139 for my $supply_use_moose (1, 0) {
141 classname => 'DBICTest::DumpMore::1',
143 $supply_use_moose ? (use_moose => 1) : (),
144 result_base_class => 'My::ResultBaseClass',
145 schema_base_class => 'My::SchemaBaseClass',
149 qr/\nuse Moose;\nuse MooseX::MarkAsMethods autoclean => 1;\nextends 'My::SchemaBaseClass';\n\n/,
150 qr/\n__PACKAGE__->meta->make_immutable\(inline_constructor => 0\);\n1;(?!\n1;\n)\n.*/,
153 qr/\nuse Moose;\nuse MooseX::NonMoose;\nuse MooseX::MarkAsMethods autoclean => 1;\nextends 'My::ResultBaseClass';\n\n/,
154 qr/\n__PACKAGE__->meta->make_immutable;\n1;(?!\n1;\n)\n.*/,
157 qr/\nuse Moose;\nuse MooseX::NonMoose;\nuse MooseX::MarkAsMethods autoclean => 1;\nextends 'My::ResultBaseClass';\n\n/,
158 qr/\n__PACKAGE__->meta->make_immutable;\n1;(?!\n1;\n)\n.*/,
163 # qr/\nuse Moose;\n.*\nuse Moose;/s, # TODO
164 qr/\n__PACKAGE__->meta->make_immutable;\n.*\n__PACKAGE__->meta->make_immutable;/s,
170 # check that a moose schema can *not* be downgraded
173 classname => 'DBICTest::DumpMore::1',
176 result_base_class => 'My::ResultBaseClass',
177 schema_base_class => 'My::SchemaBaseClass',
179 error => qr/\QIt is not possible to "downgrade" a schema that was loaded with use_moose => 1\E/,