Fix uninitialized warnings on empty hashes passed to join/prefetch
[dbsrgits/DBIx-Class.git] / t / 91merge_joinpref_attr.t
CommitLineData
1d78a406 1use strict;
8273e845 2use warnings;
1d78a406 3
4use Test::More;
5use lib qw(t/lib);
6use DBICTest;
7use Test::More;
1d78a406 8
1d78a406 9my $schema = DBICTest->init_schema();
10my $rs = $schema->resultset( 'CD' );
11
12{
13 my $a = 'artist';
14 my $b = 'cd';
15 my $expected = [ 'artist', 'cd' ];
37aafa2e 16 my $result = $rs->_merge_joinpref_attr($a, $b);
1d78a406 17 is_deeply( $result, $expected );
18}
19
20{
21 my $a = [ 'artist' ];
22 my $b = [ 'cd' ];
23 my $expected = [ 'artist', 'cd' ];
37aafa2e 24 my $result = $rs->_merge_joinpref_attr($a, $b);
1d78a406 25 is_deeply( $result, $expected );
26}
27
28{
29 my $a = [ 'artist', 'cd' ];
30 my $b = [ 'cd' ];
31 my $expected = [ 'artist', 'cd' ];
37aafa2e 32 my $result = $rs->_merge_joinpref_attr($a, $b);
1d78a406 33 is_deeply( $result, $expected );
34}
35
36{
37 my $a = [ 'artist', 'artist' ];
38 my $b = [ 'artist', 'cd' ];
39 my $expected = [ 'artist', 'artist', 'cd' ];
37aafa2e 40 my $result = $rs->_merge_joinpref_attr($a, $b);
1d78a406 41 is_deeply( $result, $expected );
42}
43
44{
45 my $a = [ 'artist', 'cd' ];
46 my $b = [ 'artist', 'artist' ];
47 my $expected = [ 'artist', 'cd', 'artist' ];
37aafa2e 48 my $result = $rs->_merge_joinpref_attr($a, $b);
1d78a406 49 is_deeply( $result, $expected );
50}
51
52{
aab9e887 53 my $a = [ 'twokeys' ];
54 my $b = [ 'cds', 'cds' ];
55 my $expected = [ 'twokeys', 'cds', 'cds' ];
37aafa2e 56 my $result = $rs->_merge_joinpref_attr($a, $b);
aab9e887 57 is_deeply( $result, $expected );
58}
59
60{
1d78a406 61 my $a = [ 'artist', 'cd', { 'artist' => 'manager' } ];
62 my $b = 'artist';
63 my $expected = [ 'artist', 'cd', { 'artist' => 'manager' } ];
37aafa2e 64 my $result = $rs->_merge_joinpref_attr($a, $b);
1d78a406 65 is_deeply( $result, $expected );
66}
67
68{
69 my $a = [ 'artist', 'cd', { 'artist' => 'manager' } ];
70 my $b = [ 'artist', 'cd' ];
71 my $expected = [ 'artist', 'cd', { 'artist' => 'manager' } ];
37aafa2e 72 my $result = $rs->_merge_joinpref_attr($a, $b);
1d78a406 73 is_deeply( $result, $expected );
74}
75
76{
77 my $a = [ 'artist', 'cd', { 'artist' => 'manager' } ];
78 my $b = { 'artist' => 'manager' };
79 my $expected = [ 'artist', 'cd', { 'artist' => [ 'manager' ] } ];
37aafa2e 80 my $result = $rs->_merge_joinpref_attr($a, $b);
1d78a406 81 is_deeply( $result, $expected );
82}
83
84{
85 my $a = [ 'artist', 'cd', { 'artist' => 'manager' } ];
86 my $b = { 'artist' => 'agent' };
87 my $expected = [ { 'artist' => 'agent' }, 'cd', { 'artist' => 'manager' } ];
37aafa2e 88 my $result = $rs->_merge_joinpref_attr($a, $b);
1d78a406 89 is_deeply( $result, $expected );
90}
91
92{
93 my $a = [ 'artist', 'cd', { 'artist' => 'manager' } ];
94 my $b = { 'artist' => { 'manager' => 'artist' } };
95 my $expected = [ 'artist', 'cd', { 'artist' => [ { 'manager' => 'artist' } ] } ];
37aafa2e 96 my $result = $rs->_merge_joinpref_attr($a, $b);
1d78a406 97 is_deeply( $result, $expected );
98}
99
100{
101 my $a = [ 'artist', 'cd', { 'artist' => 'manager' } ];
102 my $b = { 'artist' => { 'manager' => [ 'artist', 'label' ] } };
103 my $expected = [ 'artist', 'cd', { 'artist' => [ { 'manager' => [ 'artist', 'label' ] } ] } ];
37aafa2e 104 my $result = $rs->_merge_joinpref_attr($a, $b);
1d78a406 105 is_deeply( $result, $expected );
106}
107
108{
109 my $a = [ 'artist', 'cd', { 'artist' => 'manager' } ];
110 my $b = { 'artist' => { 'tour_manager' => [ 'venue', 'roadie' ] } };
111 my $expected = [ { 'artist' => { 'tour_manager' => [ 'venue', 'roadie' ] } }, 'cd', { 'artist' => 'manager' } ];
37aafa2e 112 my $result = $rs->_merge_joinpref_attr($a, $b);
1d78a406 113 is_deeply( $result, $expected );
114}
115
116{
117 my $a = [ 'artist', 'cd' ];
118 my $b = { 'artist' => { 'tour_manager' => [ 'venue', 'roadie' ] } };
119 my $expected = [ { 'artist' => { 'tour_manager' => [ 'venue', 'roadie' ] } }, 'cd' ];
37aafa2e 120 my $result = $rs->_merge_joinpref_attr($a, $b);
1d78a406 121 is_deeply( $result, $expected );
122}
123
124{
125 my $a = [ { 'artist' => 'manager' }, 'cd' ];
126 my $b = [ 'artist', { 'artist' => 'manager' } ];
127 my $expected = [ { 'artist' => 'manager' }, 'cd', { 'artist' => 'manager' } ];
37aafa2e 128 my $result = $rs->_merge_joinpref_attr($a, $b);
1d78a406 129 is_deeply( $result, $expected );
130}
131
08eba48c 132{
133 my $a = [ { 'artist' => { 'manager' => {} } }, 'cd' ];
134 my $b = [ 'artist', { 'artist' => { 'manager' => {} } } ];
135 my $expected = [ { 'artist' => { 'manager' => {} } }, 'cd', { 'artist' => { 'manager' => {} } } ];
136 my $result = $rs->_merge_joinpref_attr($a, $b);
137 is_deeply( $result, $expected );
138}
139
140{
141 my $a = [ { 'artist' => { 'manager' => undef } }, 'cd' ];
142 my $b = [ 'artist', { 'artist' => { 'manager' => undef } } ];
143 my $expected = [ { 'artist' => { 'manager' => undef } }, 'cd', { 'artist' => { 'manager' => undef } } ];
144 my $result = $rs->_merge_joinpref_attr($a, $b);
145 is_deeply( $result, $expected );
146}
1d78a406 147
08eba48c 148done_testing;