9 my $schema = DBICTest->init_schema();
10 my $rs = $schema->resultset( 'CD' );
15 my $expected = [ 'artist', 'cd' ];
16 my $result = $rs->_merge_joinpref_attr($a, $b);
17 is_deeply( $result, $expected );
23 my $expected = [ 'artist', 'cd' ];
24 my $result = $rs->_merge_joinpref_attr($a, $b);
25 is_deeply( $result, $expected );
29 my $a = [ 'artist', 'cd' ];
31 my $expected = [ 'artist', 'cd' ];
32 my $result = $rs->_merge_joinpref_attr($a, $b);
33 is_deeply( $result, $expected );
37 my $a = [ 'artist', 'artist' ];
38 my $b = [ 'artist', 'cd' ];
39 my $expected = [ 'artist', 'artist', 'cd' ];
40 my $result = $rs->_merge_joinpref_attr($a, $b);
41 is_deeply( $result, $expected );
45 my $a = [ 'artist', 'cd' ];
46 my $b = [ 'artist', 'artist' ];
47 my $expected = [ 'artist', 'cd', 'artist' ];
48 my $result = $rs->_merge_joinpref_attr($a, $b);
49 is_deeply( $result, $expected );
53 my $a = [ 'twokeys' ];
54 my $b = [ 'cds', 'cds' ];
55 my $expected = [ 'twokeys', 'cds', 'cds' ];
56 my $result = $rs->_merge_joinpref_attr($a, $b);
57 is_deeply( $result, $expected );
61 my $a = [ 'artist', 'cd', { 'artist' => 'manager' } ];
63 my $expected = [ 'artist', 'cd', { 'artist' => 'manager' } ];
64 my $result = $rs->_merge_joinpref_attr($a, $b);
65 is_deeply( $result, $expected );
69 my $a = [ 'artist', 'cd', { 'artist' => 'manager' } ];
70 my $b = [ 'artist', 'cd' ];
71 my $expected = [ 'artist', 'cd', { 'artist' => 'manager' } ];
72 my $result = $rs->_merge_joinpref_attr($a, $b);
73 is_deeply( $result, $expected );
77 my $a = [ 'artist', 'cd', { 'artist' => 'manager' } ];
78 my $b = { 'artist' => 'manager' };
79 my $expected = [ 'artist', 'cd', { 'artist' => [ 'manager' ] } ];
80 my $result = $rs->_merge_joinpref_attr($a, $b);
81 is_deeply( $result, $expected );
85 my $a = [ 'artist', 'cd', { 'artist' => 'manager' } ];
86 my $b = { 'artist' => 'agent' };
87 my $expected = [ { 'artist' => 'agent' }, 'cd', { 'artist' => 'manager' } ];
88 my $result = $rs->_merge_joinpref_attr($a, $b);
89 is_deeply( $result, $expected );
93 my $a = [ 'artist', 'cd', { 'artist' => 'manager' } ];
94 my $b = { 'artist' => { 'manager' => 'artist' } };
95 my $expected = [ 'artist', 'cd', { 'artist' => [ { 'manager' => 'artist' } ] } ];
96 my $result = $rs->_merge_joinpref_attr($a, $b);
97 is_deeply( $result, $expected );
101 my $a = [ 'artist', 'cd', { 'artist' => 'manager' } ];
102 my $b = { 'artist' => { 'manager' => [ 'artist', 'label' ] } };
103 my $expected = [ 'artist', 'cd', { 'artist' => [ { 'manager' => [ 'artist', 'label' ] } ] } ];
104 my $result = $rs->_merge_joinpref_attr($a, $b);
105 is_deeply( $result, $expected );
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' } ];
112 my $result = $rs->_merge_joinpref_attr($a, $b);
113 is_deeply( $result, $expected );
117 my $a = [ 'artist', 'cd' ];
118 my $b = { 'artist' => { 'tour_manager' => [ 'venue', 'roadie' ] } };
119 my $expected = [ { 'artist' => { 'tour_manager' => [ 'venue', 'roadie' ] } }, 'cd' ];
120 my $result = $rs->_merge_joinpref_attr($a, $b);
121 is_deeply( $result, $expected );
125 my $a = [ { 'artist' => 'manager' }, 'cd' ];
126 my $b = [ 'artist', { 'artist' => 'manager' } ];
127 my $expected = [ { 'artist' => 'manager' }, 'cd', { 'artist' => 'manager' } ];
128 my $result = $rs->_merge_joinpref_attr($a, $b);
129 is_deeply( $result, $expected );
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 );
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 );