#!/usr/bin/perl -w
BEGIN {
use lib qw( t );
}
use strict;
use Test::More tests => 19;
use my_dbi_conf;
use test_config;
test_config->recreate_tables;
require 'fill_tables.pl';
my ($c, $clubs, $p, $persons);
##----- fetch methods -----
my $t = 'fetch methods';
$p = Person->fetch(20);
ok( $clubs = $p->ClubAlias, $t );
is( @$clubs, 2, $t );
is_deeply( [sort map $_->id, @$clubs], [26, 27], $t );
$c = Club->fetch(26);
ok( $persons = $c->PersonAlias, $t );
is( @$persons, 3, $t );
is_deeply( [sort map $_->id, @$persons], [20, 21, 24], $t );
##----- add methods -----
$t = 'add methods';
$p = Person->fetch(20);
$p->ClubAlias_add([28]);
ok( $clubs = $p->ClubAlias, $t );
is( @$clubs, 3, $t );
is_deeply( [sort map $_->id, @$clubs], [26, 27, 28], $t );
$c = Club->fetch(26);
$c->PersonAlias_add( [22,25] );
ok( $persons = $c->PersonAlias, $t );
is( @$persons, 5, $t );
is_deeply( [sort map $_->id, @$persons], [20, 21, 22, 24, 25], $t );
##----- remove methods -----
$t = 'remove methods';
$p = Person->fetch(20);
$p->ClubAlias_remove([28]);
ok( $clubs = $p->ClubAlias, $t );
is( @$clubs, 2, $t );
is_deeply( [sort map $_->id, @$clubs], [26, 27], $t );
$c = Club->fetch(26);
$c->PersonAlias_remove( [22,25] );
ok( $persons = $c->PersonAlias, $t );
is( @$persons, 3, $t );
is_deeply( [sort map $_->id, @$persons], [20, 21, 24], $t );
##----- auto-removal of linking entries -----
$t = 'auto-removal of linking entries';
$c->remove;
my $args = { from => [ 'ClubMembers' ],
select => [ 'COUNT(*)'],
where => 'club_id = 26',
return => 'single'
};
my $row = eval { ClubMembers->db_select($args); };
is( $row->[0], 0, $t );
1;