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
130 $t->append_to_class('DBICTest::DumpMore::1::Foo', qq{__PACKAGE__->meta->make_immutable;\n1;\n});
133 classname => 'DBICTest::DumpMore::1',
136 result_base_class => 'My::ResultBaseClass',
137 schema_base_class => 'My::SchemaBaseClass',
140 qr/Dumping manual schema for DBICTest::DumpMore::1 to directory /,
141 qr/Schema dump completed/,
145 qr/\nuse Moose;\nuse MooseX::NonMoose;\nuse namespace::autoclean;\nextends 'My::SchemaBaseClass';\n\n/,
146 qr/\n__PACKAGE__->meta->make_immutable;\n1;(?!\n1;\n)\n.*/,
149 qr/\nuse Moose;\nuse MooseX::NonMoose;\nuse namespace::autoclean;\nextends 'My::ResultBaseClass';\n\n/,
150 qr/\n__PACKAGE__->meta->make_immutable;\n1;(?!\n1;\n)\n.*/,
153 qr/\nuse Moose;\nuse MooseX::NonMoose;\nuse namespace::autoclean;\nextends 'My::ResultBaseClass';\n\n/,
154 qr/\n__PACKAGE__->meta->make_immutable;\n1;(?!\n1;\n)\n.*/,
159 qr/\n__PACKAGE__->meta->make_immutable;\n.*\n__PACKAGE__->meta->make_immutable;/s,