DBIO-SQLite

 view release on metacpan or  search on metacpan

MANIFEST  view on Meta::CPAN

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

MANIFEST  view on Meta::CPAN

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

MANIFEST  view on Meta::CPAN

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

t/60core.t  view on Meta::CPAN

  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 2.515 seconds using v1.01-cache-2.11-cpan-7fcb06a456a )