DBIO-SQLite
view release on metacpan or search on metacpan
t/60core.t
t/61findnot.t
t/64db.t
t/65multipk.t
t/69update.t
t/76joins.t
t/76select.t
t/78self_referencial.t
t/79aliasing.t
t/80unique.t
t/82cascade_copy.t
t/83cache.t
t/86sqlt.t
t/87ordered.t
t/88result_set_column.t
t/90join_torture.t
t/93autocast.t
t/93single_accessor_object.t
t/94pk_mutation.t
t/96_is_deteministic_value.t
t/97result_class.t
t/count/count_rs.t
t/count/distinct.t
t/count/group_by_func.t
t/count/grouped_pager.t
t/count/in_subquery.t
t/count/joined.t
t/count/prefetch.t
t/count/search_related.t
t/debug/core.t
t/debug/pretty.t
t/delete/cascade_missing.t
t/delete/complex.t
t/delete/m2m.t
t/delete/related.t
t/discard_changes_in_DESTROY.t
t/helpers/resultset_shortcuts.t
t/helpers/row_helpers.t
t/helpers/schema_helpers.t
t/inflate/core.t
t/inflate/datetime.t
t/inflate/datetime_determine_parser.t
t/multi_create/existing_in_chain.t
t/multi_create/find_or_multicreate.t
t/multi_create/has_many.t
t/multi_create/in_memory.t
t/multi_create/insert_defaults.t
t/multi_create/m2m.t
t/multi_create/multilev_single_PKeqFK.t
t/multi_create/reentrance_count.t
t/multi_create/standard.t
t/multi_create/torture.t
t/ordered/cascade_delete.t
t/ordered/unordered_movement.t
t/pager/dbic_core.t
t/populate_more.t
t/prefetch/attrs_untouched.t
t/prefetch/correlated.t
t/prefetch/count.t
t/prefetch/diamond.t
t/prefetch/double_prefetch.t
t/prefetch/empty_cache.t
t/prefetch/false_colvalues.t
is(@artsn, 4, "Four artists returned");
# make sure subclasses that don't set source_name are ok
ok($schema->source('ArtistSubclass'), 'ArtistSubclass exists');
}
my $newbook = $schema->resultset( 'Bookmark' )->find(1);
lives_ok (sub { my $newlink = $newbook->link}, "stringify to false value doesn't cause error");
# test cascade_delete through many_to_many relations
{
my $art_del = $schema->resultset("Artist")->find({ artistid => 1 });
lives_ok (sub { $art_del->delete }, 'Cascading delete on Ordered has_many works' ); # real test in ordered.t
is( $schema->resultset("CD")->search({artist => 1}), 0, 'Cascading through has_many top level.');
is( $schema->resultset("CD_to_Producer")->search({cd => 1}), 0, 'Cascading through has_many children.');
}
# test column_info
{
$schema->source("Artist")->{_columns}{'artistid'} = {};
t/delete/cascade_missing.t view on Meta::CPAN
use DBIO::SQLite::Test;
my $schema = DBIO::SQLite::Test->init_schema();
$schema->_unregister_source('CD');
warnings_exist {
my $s = $schema;
lives_ok {
$_->delete for $s->resultset('Artist')->all;
} 'delete on rows with dangling rels lives';
} [
# 9 == 3 artists * failed cascades:
# cds
# cds_unordered
# cds_very_very_very_long_relationship_name
(qr/skipping cascad/i) x 9
], 'got warnings about cascading deletes';
done_testing;
t/relationship/core.t view on Meta::CPAN
my $mapped_rs = $undir_maps->search_related('mapped_artists');
my @art = $mapped_rs->all;
cmp_ok(@art, '==', 2, "Both artist returned from map");
my $searched = $mapped_rs->search({'mapped_artists.artistid' => {'!=', undef}});
cmp_ok($searched->count, '==', 2, "Both artist returned from map after adding another condition");
# check join through cascaded has_many relationships (also empty has_many rels)
$artist = $schema->resultset("Artist")->find(1);
my $trackset = $artist->cds->search_related('tracks');
is($trackset->count, 10, "Correct number of tracks for artist");
is($trackset->all, 10, "Correct number of track objects for artist");
# now see about updating eveything that belongs to artist 2 to artist 3
$artist = $schema->resultset("Artist")->find(2);
my $nartist = $schema->resultset("Artist")->find(3);
cmp_ok($artist->cds->count, '==', 1, "Correct orig #cds for artist");
cmp_ok($nartist->cds->count, '==', 1, "Correct orig #cds for artist");
t/resultset/update_delete.t view on Meta::CPAN
$rs->search({}, { prefetch => 'artist' })->delete;
}, [[
'DELETE FROM "cd" WHERE ( "cdid" IN ( SELECT "me"."cdid" FROM "cd" "me" JOIN "artist" "artist" ON "artist"."artistid" = "me"."artist" WHERE ( "me"."year" != ? ) ) )',
2010,
]], 'Restricting prefetch left in, selector thrown out');
### switch artist and cd to fully qualified table names
### make sure nothing is stripped out
my $cd_rsrc = $schema->source('CD');
$cd_rsrc->name('main.cd');
$cd_rsrc->relationship_info($_)->{attrs}{cascade_delete} = 0
for $cd_rsrc->relationships;
my $art_rsrc = $schema->source('Artist');
$art_rsrc->name(\'main.artist');
$art_rsrc->relationship_info($_)->{attrs}{cascade_delete} = 0
for $art_rsrc->relationships;
$schema->is_executed_sql_bind( sub {
$rs->delete
}, [[
'DELETE FROM "main"."cd" WHERE "year" != ?',
2010,
]], 'delete with fully qualified table name' );
$rs->create({ title => 'foo', artist => 1, year => 2000 });
( run in 0.654 second using v1.01-cache-2.11-cpan-7fcb06a456a )