The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/perl
# -*- mode: cperl -*-

use lib 't/lib';
use Kwiki;
use DBI;
use Test::More;
use Kwiki::DB::Test;

eval 'require DBD::SQLite;require Class::DBI;';

if($@) {
    plan skip_all => 'Test require DBD::SQLite and Class::DBI';
} else {
    plan tests => 4;
}

{
my $dbh = DBI->connect("dbi:SQLite:t/classdbi-dbfile");
$dbh->do("CREATE TABLE artist (artistid, name);");
$dbh->do("CREATE TABLE cd (cdid, artist, title, year)");
$dbh->disconnect;
}

my $hub = Kwiki::DB::Test::load_hub('t/config.classdbi.yaml');

ok($hub->db);
my $db = $hub->db;

$db->base("Kwiki::DB::Music");

$db->entity(artist => "Kwiki::DB::Music::Artist");
$db->entity(cd     => "Kwiki::DB::Music::CD");

$db->connection("dbi:SQLite:t/classdbi-dbfile");

my $artist = $db->artist->create({artistid => 1, name => 'U2'});

ok($artist);

my $cd = $artist->add_to_cds({ cdid => 1, title => 'October', year => 1980 });
ok($cd);

$cd->year(1981);
$cd->update;

ok($cd->year == 1981);

unlink("t/classdbi-dbfile");