Add use_moo option
[dbsrgits/DBIx-Class-Schema-Loader.git] / t / 28dump_use_moo.t
CommitLineData
846901b7 1use DBIx::Class::Schema::Loader::Optional::Dependencies
2 -skip_all_without => 'use_moo';
3
4use strict;
5use warnings;
6
7use Test::More;
8
9use lib qw(t/lib);
10use dbixcsl_dumper_tests;
11my $t = 'dbixcsl_dumper_tests';
12
13$t->cleanup;
14
15# first dump a fresh use_moo=1 schema
16$t->dump_test(
17 classname => 'DBICTest::DumpMore::1',
18 options => {
19 use_moo => 1,
20 result_base_class => 'My::ResultBaseClass',
21 schema_base_class => 'My::SchemaBaseClass',
22 result_roles => ['TestRole', 'TestRole2'],
23 },
24 regexes => {
25 schema => [
26 qr/\nuse Moo;\nuse namespace::autoclean;\nextends 'My::SchemaBaseClass';\n\n/,
27 ],
28 Foo => [
29 qr/\nuse Moo;\nuse namespace::autoclean;\nextends 'My::ResultBaseClass';\n\n/,
30 qr/=head1 L<Moo> 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 ],
33 Bar => [
34 qr/\nuse Moo;\nuse namespace::autoclean;\nextends 'My::ResultBaseClass';\n\n/,
35 qr/=head1 L<Moo> ROLES APPLIED\n\n=over 4\n\n=item \* L<TestRole>\n\n=item \* L<TestRole2>\n\n=back\n\n=cut\n\n/,
36 qr/\nwith 'TestRole', 'TestRole2';\n\n/,
37 ],
38 },
39);
40
41$t->cleanup;
42
43# now upgrade a fresh non-moo schema to use_moo=1
44$t->dump_test(
45 classname => 'DBICTest::DumpMore::1',
46 options => {
47 use_moo => 0,
48 result_base_class => 'My::ResultBaseClass',
49 schema_base_class => 'My::SchemaBaseClass',
50 },
51 regexes => {
52 schema => [
53 qr/\nuse base 'My::SchemaBaseClass';\n/,
54 ],
55 Foo => [
56 qr/\nuse base 'My::ResultBaseClass';\n/,
57 ],
58 Bar => [
59 qr/\nuse base 'My::ResultBaseClass';\n/,
60 ],
61 },
62);
63
64# check that changed custom content is upgraded for Moo bits
65$t->append_to_class('DBICTest::DumpMore::1::Foo', q{# XXX This is my custom content XXX});
66
67$t->dump_test(
68 classname => 'DBICTest::DumpMore::1',
69 options => {
70 use_moo => 1,
71 result_base_class => 'My::ResultBaseClass',
72 schema_base_class => 'My::SchemaBaseClass',
73 },
74 regexes => {
75 schema => [
76 qr/\nuse Moo;\nuse namespace::autoclean;\nextends 'My::SchemaBaseClass';\n\n/,
77 ],
78 Foo => [
79 qr/\nuse Moo;\nuse namespace::autoclean;\nextends 'My::ResultBaseClass';\n\n/,
80 qr/# XXX This is my custom content XXX/,
81 ],
82 Bar => [
83 qr/\nuse Moo;\nuse namespace::autoclean;\nextends 'My::ResultBaseClass';\n\n/,
84 ],
85 },
86);
87
88done_testing();
89