5 eval "use DBD::SQLite";
7 ? ( skip_all => 'needs DBD::SQLite for testing' )
15 # test the abstract join => SQL generator
16 my $sa = new DBIC::SQL::Abstract;
19 { child => 'person' },
20 [ { father => 'person' }, { 'father.person_id' => 'child.father_id' }, ],
21 [ { mother => 'person' }, { 'mother.person_id' => 'child.mother_id' } ],
23 my $match = 'person child JOIN person father ON ( father.person_id = '
24 . 'child.father_id ) JOIN person mother ON ( mother.person_id '
25 . '= child.mother_id )'
27 is( $sa->_recurse_from(@j), $match, 'join 1 ok' );
30 { mother => 'person' },
31 [ [ { child => 'person' },
32 [ { father => 'person' },
33 { 'father.person_id' => 'child.father_id' }
36 { 'mother.person_id' => 'child.mother_id' }
39 $match = 'person mother JOIN (person child JOIN person father ON ('
40 . ' father.person_id = child.father_id )) ON ( mother.person_id = '
43 is( $sa->_recurse_from(@j2), $match, 'join 2 ok' );
46 { child => 'person' },
47 [ { father => 'person', -join_type => 'inner' }, { 'father.person_id' => 'child.father_id' }, ],
48 [ { mother => 'person', -join_type => 'inner' }, { 'mother.person_id' => 'child.mother_id' } ],
50 my $match = 'person child INNER JOIN person father ON ( father.person_id = '
51 . 'child.father_id ) INNER JOIN person mother ON ( mother.person_id '
52 . '= child.mother_id )'
55 is( $sa->_recurse_from(@j3), $match, 'join 3 (inner join) ok');