5 use DBIx::Class::Schema::Loader::Optional::Dependencies ();
7 use DBIx::Class::Schema::Loader::Optional::Dependencies ();
8 plan skip_all => 'Tests needs ' . DBIx::Class::Schema::Loader::Optional::Dependencies->req_missing_for('use_moose')
9 unless (DBIx::Class::Schema::Loader::Optional::Dependencies->req_ok_for('use_moose'));
13 use dbixcsl_dumper_tests;
14 my $t = 'dbixcsl_dumper_tests';
18 # first dump a fresh use_moose=1 schema
20 classname => 'DBICTest::DumpMore::1',
23 result_base_class => 'My::ResultBaseClass',
24 schema_base_class => 'My::SchemaBaseClass',
27 qr/Dumping manual schema for DBICTest::DumpMore::1 to directory /,
28 qr/Schema dump completed/,
32 qr/\nuse Moose;\nuse MooseX::NonMoose;\nuse namespace::autoclean;\nextends 'My::SchemaBaseClass';\n\n/,
33 qr/\n__PACKAGE__->meta->make_immutable;\n1;(?!\n1;\n)\n.*/,
36 qr/\nuse Moose;\nuse MooseX::NonMoose;\nuse namespace::autoclean;\nextends 'My::ResultBaseClass';\n\n/,
37 qr/\n__PACKAGE__->meta->make_immutable;\n1;(?!\n1;\n)\n.*/,
40 qr/\nuse Moose;\nuse MooseX::NonMoose;\nuse namespace::autoclean;\nextends 'My::ResultBaseClass';\n\n/,
41 qr/\n__PACKAGE__->meta->make_immutable;\n1;(?!\n1;\n)\n.*/,
48 # now upgrade a fresh non-moose schema to use_moose=1
50 classname => 'DBICTest::DumpMore::1',
52 result_base_class => 'My::ResultBaseClass',
53 schema_base_class => 'My::SchemaBaseClass',
56 qr/Dumping manual schema for DBICTest::DumpMore::1 to directory /,
57 qr/Schema dump completed/,
61 qr/\nuse base 'My::SchemaBaseClass';\n/,
64 qr/\nuse base 'My::ResultBaseClass';\n/,
67 qr/\nuse base 'My::ResultBaseClass';\n/,
72 # check that changed custom content is upgraded for Moose bits
73 $t->append_to_class('DBICTest::DumpMore::1::Foo', q{# XXX This is my custom content XXX});
76 classname => 'DBICTest::DumpMore::1',
79 result_base_class => 'My::ResultBaseClass',
80 schema_base_class => 'My::SchemaBaseClass',
83 qr/Dumping manual schema for DBICTest::DumpMore::1 to directory /,
84 qr/Schema dump completed/,
88 qr/\nuse Moose;\nuse MooseX::NonMoose;\nuse namespace::autoclean;\nextends 'My::SchemaBaseClass';\n\n/,
89 qr/\n__PACKAGE__->meta->make_immutable;\n1;(?!\n1;\n)\n.*/,
92 qr/\nuse Moose;\nuse MooseX::NonMoose;\nuse namespace::autoclean;\nextends 'My::ResultBaseClass';\n\n/,
93 qr/\n__PACKAGE__->meta->make_immutable;\n1;(?!\n1;\n)\n.*/,
96 qr/\nuse Moose;\nuse MooseX::NonMoose;\nuse namespace::autoclean;\nextends 'My::ResultBaseClass';\n\n/,
97 qr/\n__PACKAGE__->meta->make_immutable;\n1;(?!\n1;\n)\n.*/,
104 # now add the Moose custom content to unapgraded schema, and make sure it is not repeated
106 classname => 'DBICTest::DumpMore::1',
108 result_base_class => 'My::ResultBaseClass',
109 schema_base_class => 'My::SchemaBaseClass',
112 qr/Dumping manual schema for DBICTest::DumpMore::1 to directory /,
113 qr/Schema dump completed/,
117 qr/\nuse base 'My::SchemaBaseClass';\n/,
120 qr/\nuse base 'My::ResultBaseClass';\n/,
123 qr/\nuse base 'My::ResultBaseClass';\n/,
128 # add Moose custom content then check it is not repeated
129 # after that regen again *without* the use_moose flag, make
130 # sure moose isn't stripped away
131 $t->append_to_class('DBICTest::DumpMore::1::Foo', qq{__PACKAGE__->meta->make_immutable;\n1;\n});
133 for my $supply_use_moose (1, 0) {
135 classname => 'DBICTest::DumpMore::1',
137 $supply_use_moose ? (use_moose => 1) : (),
138 result_base_class => 'My::ResultBaseClass',
139 schema_base_class => 'My::SchemaBaseClass',
142 qr/Dumping manual schema for DBICTest::DumpMore::1 to directory /,
143 qr/Schema dump completed/,
147 qr/\nuse Moose;\nuse MooseX::NonMoose;\nuse namespace::autoclean;\nextends 'My::SchemaBaseClass';\n\n/,
148 qr/\n__PACKAGE__->meta->make_immutable;\n1;(?!\n1;\n)\n.*/,
151 qr/\nuse Moose;\nuse MooseX::NonMoose;\nuse namespace::autoclean;\nextends 'My::ResultBaseClass';\n\n/,
152 qr/\n__PACKAGE__->meta->make_immutable;\n1;(?!\n1;\n)\n.*/,
155 qr/\nuse Moose;\nuse MooseX::NonMoose;\nuse namespace::autoclean;\nextends 'My::ResultBaseClass';\n\n/,
156 qr/\n__PACKAGE__->meta->make_immutable;\n1;(?!\n1;\n)\n.*/,
161 qr/\n__PACKAGE__->meta->make_immutable;\n.*\n__PACKAGE__->meta->make_immutable;/s,