DBIO

 view release on metacpan or  search on metacpan

lib/DBIO/Test.pm  view on Meta::CPAN

    __PACKAGE__->populate_schema($schema) unless $args{no_populate};
  }

  return $schema;
}


sub deploy_schema {
  my ($self, $schema, $args) = @_;
  $args ||= {};

  # Fake storage doesn't need deployment
  return if __PACKAGE__->_uses_fake_storage($schema);

  # Let the storage declare its own deploy requirements — no driver-name
  # matching here.  Caller-supplied args take precedence over defaults.
  my %deploy_args = ($schema->storage->deploy_defaults, %$args);

  # Pre-deploy setup hook (e.g. MySQL strips incompatible sql_mode flags)
  $schema->storage->deploy_setup($schema);

  $schema->deploy(\%deploy_args);
}


sub populate_schema {
  my ($self, $schema) = @_;

  # Fake storage can't hold data
  return if __PACKAGE__->_uses_fake_storage($schema);

  $schema->populate('Genre', [
    [qw/genreid name/],
    [qw/1       emo  /],
  ]);

  $schema->populate('Artist', [
    [ qw/artistid name/ ],
    [ 1, 'Caterwauler McCrae' ],
    [ 2, 'Random Boy Band' ],
    [ 3, 'We Are Goth' ],
  ]);

  $schema->populate('CD', [
    [ qw/cdid artist title year genreid/ ],
    [ 1, 1, "Spoonful of bees", 1999, 1 ],
    [ 2, 1, "Forkful of bees", 2001 ],
    [ 3, 1, "Caterwaulin' Blues", 1997 ],
    [ 4, 2, "Generic Manufactured Singles", 2001 ],
    [ 5, 3, "Come Be Depressed With Us", 1998 ],
  ]);

  $schema->populate('LinerNotes', [
    [ qw/liner_id notes/ ],
    [ 2, "Buy Whiskey!" ],
    [ 4, "Buy Merch!" ],
    [ 5, "Kill Yourself!" ],
  ]);

  $schema->populate('Tag', [
    [ qw/tagid cd tag/ ],
    [ 1, 1, "Blue" ],
    [ 2, 2, "Blue" ],
    [ 3, 3, "Blue" ],
    [ 4, 5, "Blue" ],
    [ 5, 2, "Cheesy" ],
    [ 6, 4, "Cheesy" ],
    [ 7, 5, "Cheesy" ],
    [ 8, 2, "Shiny" ],
    [ 9, 4, "Shiny" ],
  ]);

  $schema->populate('TwoKeys', [
    [ qw/artist cd/ ],
    [ 1, 1 ],
    [ 1, 2 ],
    [ 2, 2 ],
  ]);

  $schema->populate('FourKeys', [
    [ qw/foo bar hello goodbye sensors/ ],
    [ 1, 2, 3, 4, 'online' ],
    [ 5, 4, 3, 6, 'offline' ],
  ]);

  $schema->populate('OneKey', [
    [ qw/id artist cd/ ],
    [ 1, 1, 1 ],
    [ 2, 1, 2 ],
    [ 3, 2, 2 ],
  ]);

  $schema->populate('SelfRef', [
    [ qw/id name/ ],
    [ 1, 'First' ],
    [ 2, 'Second' ],
  ]);

  $schema->populate('SelfRefAlias', [
    [ qw/self_ref alias/ ],
    [ 1, 2 ]
  ]);

  $schema->populate('ArtistUndirectedMap', [
    [ qw/id1 id2/ ],
    [ 1, 2 ]
  ]);

  $schema->populate('Producer', [
    [ qw/producerid name/ ],
    [ 1, 'Matt S Trout' ],
    [ 2, 'Bob The Builder' ],
    [ 3, 'Fred The Phenotype' ],
  ]);

  $schema->populate('CD_to_Producer', [
    [ qw/cd producer/ ],
    [ 1, 1 ],
    [ 1, 2 ],
    [ 1, 3 ],
  ]);



( run in 1.079 second using v1.01-cache-2.11-cpan-acf6aa7dc9e )