Improved join condition possiblities - arrayrefs of hashrefs now work for OR
[dbsrgits/DBIx-Class.git] / t / lib / DBICTest / Schema / HelperRels.pm
index 2f99d7b..4c7ea1d 100644 (file)
@@ -1,4 +1,4 @@
-package DBICTest::Schema::BasicRels;
+package DBICTest::Schema::HelperRels;
 
 use base 'DBIx::Class::Core';
 
@@ -11,13 +11,13 @@ DBICTest::Schema::CD->belongs_to('artist', 'DBICTest::Schema::Artist');
 
 DBICTest::Schema::CD->has_many(tracks => 'DBICTest::Schema::Track');
 DBICTest::Schema::CD->has_many(tags => 'DBICTest::Schema::Tag');
+DBICTest::Schema::CD->has_many(cd_to_producer => 'DBICTest::Schema::CD_to_Producer' => 'cd');
 
 DBICTest::Schema::CD->might_have(liner_notes => 'DBICTest::Schema::LinerNotes',
                                   undef, { proxy => [ qw/notes/ ] });
 
 DBICTest::Schema::SelfRefAlias->belongs_to(
   self_ref => 'DBICTest::Schema::SelfRef');
-
 DBICTest::Schema::SelfRefAlias->belongs_to(
   alias => 'DBICTest::Schema::SelfRef');
 
@@ -26,10 +26,33 @@ DBICTest::Schema::SelfRef->has_many(
 
 DBICTest::Schema::Tag->belongs_to('cd', 'DBICTest::Schema::CD');
 
-DBICTest::Schema::Track->belongs_to('cd', 'DBICTest::Schema::CD', 'cdid');
+DBICTest::Schema::Track->belongs_to('cd', 'DBICTest::Schema::CD');
+DBICTest::Schema::Track->belongs_to('disc', 'DBICTest::Schema::CD', 'cd');
 
 DBICTest::Schema::TwoKeys->belongs_to('artist', 'DBICTest::Schema::Artist');
-
 DBICTest::Schema::TwoKeys->belongs_to('cd', 'DBICTest::Schema::CD');
 
+DBICTest::Schema::CD_to_Producer->belongs_to(
+  'cd', 'DBICTest::Schema::CD',
+  { 'foreign.cdid' => 'self.cd' }
+);
+DBICTest::Schema::CD_to_Producer->belongs_to(
+  'producer', 'DBICTest::Schema::Producer',
+  { 'foreign.producerid' => 'self.producer' }
+);
+DBICTest::Schema::Artist->has_many(
+  'artist_undirected_maps', 'DBICTest::Schema::ArtistUndirectedMap',
+  [{'foreign.id1' => 'self.artistid'}, {'foreign.id2' => 'self.artistid'}]
+);
+DBICTest::Schema::ArtistUndirectedMap->belongs_to(
+  'artist1', 'DBICTest::Schema::Artist', 'id1');
+DBICTest::Schema::ArtistUndirectedMap->belongs_to(
+  'artist2', 'DBICTest::Schema::Artist', 'id2');
+DBICTest::Schema::ArtistUndirectedMap->has_many(
+  'mapped_artists', 'DBICTest::Schema::Artist',
+  [{'foreign.artistid' => 'self.id1'}, {'foreign.artistid' => 'self.id2'}]);
+
+# now the Helpers
+DBICTest::Schema::CD->many_to_many( 'producers', 'cd_to_producer', 'producer');
+
 1;