use strict;
use warnings;
use Test::More;
use lib qw( t/lib );
use DBICTest;
use DBICTest::Constants qw/ THROW_EXCEPTION_MESSAGE /;
BEGIN {
eval "use DBD::SQLite";
plan $@
? ( skip_all => 'needs DBD::SQLite for testing' )
: ( tests => 68 );
}
my $schema = DBICTest->init_schema;
my $message = THROW_EXCEPTION_MESSAGE;
## master
my $itr_m_artist = $schema->resultset('Artist')->search;
$itr_m_artist->update_all({name => 'UPDATE_ALL'});
while ( my $m_artist = $itr_m_artist->next ) {
is($m_artist->is_slave,0,'master artist "update_all"');
is($m_artist->name,'UPDATE_ALL','master artist "update_all"');
}
my $itr_m_cd = $schema->resultset('CD')->search;
$itr_m_cd->update_all({year => 'UPDATE_ALL'});
while ( my $m_cd = $itr_m_cd->next ) {
is($m_cd->is_slave,0,'master cd "update_all"');
is($m_cd->year,'UPDATE_ALL','master cd "update_all"');
}
## slave
my $itr_s_artist = $schema->resultset('Artist::Slave')->search;
eval{$itr_s_artist->update_all({name => 'UPDATE_ALL'})};
like($@,qr/$message/,'slave artist "update_all"');
my $itr_s_cd = $schema->resultset('CD::Slave')->search;
eval{$itr_s_cd->update_all({year => 'UPDATE_ALL'})};
like($@,qr/$message/,'slave artist "update_all"');