my $tempdir = tempdir;
use if $^O eq 'MSWin32','Devel::Confess';
-plan tests => 16;
+plan tests => 18;
# set up and populate schema
ok(my $schema = DBICTest->init_schema(db_dir => $tempdir, ), 'got schema');
--- /dev/null
+#!perl
+
+use DBIx::Class::Fixtures;
+use Test::More tests => 7;
+use lib qw(t/lib);
+use DBICTest;
+use Path::Class;
+use Data::Dumper;
+use IO::All;
+
+use if $^O eq 'MSWin32','Devel::Confess';
+# set up and populate schema
+ok(my $schema = DBICTest->init_schema(), 'got schema');
+
+my $config_dir = io->catfile(qw't var configs')->name;
+
+# Add washedup
+
+ok my $artist = $schema->resultset("Artist")->find(1);
+ok my $washed_up = $artist->create_related('washed_up', +{});
+ok $washed_up->fk_artistid;
+
+
+ok(my $fixtures = DBIx::Class::Fixtures->new({ config_dir => $config_dir, debug => 0 }), 'object created with correct config dir');
+ok($fixtures->dump({
+ config => {
+ "might_have" => {
+ "fetch" => 0
+ },
+ "has_many" => {
+ "fetch" => 0
+ },
+ "sets" => [{
+ "class" => "Artist::WashedUp",
+ "quantity" => 1
+ }]
+ },
+ schema => $schema,
+ directory => io->catfile(qw't var fixtures')->name,
+ }), 'simple dump executed okay');
+
+ok(
+ $fixtures->dump({
+ config => 'washed-up.json',
+ schema => $schema,
+ directory => io->catfile(qw't var fixtures')->name,
+ }));
+
+
[ 32948, 'Big PK' ],
]);
+ $schema->populate('Artist::WashedUp', [
+ [ qw/fk_artistid/ ],
+ [ 2 ],
+ ]);
+
$schema->populate('CD', [
[ qw/cdid artist title year/ ],
[ 1, 1, "Spoonful of bees", 1999 ],
no warnings qw/qw/;
-__PACKAGE__->load_classes(qw/Artist CD Track Tag Producer CD_to_Producer/);
+__PACKAGE__->load_classes(qw/Artist Artist::WashedUp CD Track Tag Producer CD_to_Producer/);
1;
{ order_by => 'year' },
);
+__PACKAGE__->might_have(
+ washed_up => 'DBICTest::Schema::Artist::WashedUp',
+ {'foreign.fk_artistid' => 'self.artistid'},
+);
+
sub new {
my ( $class, $args ) = @_;
--- /dev/null
+package # hide from PAUSE
+ DBICTest::Schema::Artist::WashedUp;
+
+use base 'DBIx::Class::Core';
+
+__PACKAGE__->table('artist_washed_up');
+__PACKAGE__->add_columns(
+ 'fk_artistid' => {
+ data_type => 'integer',
+ },
+);
+
+__PACKAGE__->set_primary_key('fk_artistid');
+__PACKAGE__->belongs_to(
+ 'artist', 'DBICTest::Schema::Artist',
+ { 'foreign.artistid' => 'self.fk_artistid' }
+);
+
+1;
name varchar(100)
);
+--
+-- Table: artist_washed_up
+--
+DROP TABLE IF EXISTS artist_washed_up;
+CREATE TABLE artist_washed_up (
+ fk_artistid INTEGER PRIMARY KEY NOT NULL
+);
--
-- Table: cd
name varchar(100)
);
+--
+-- Table: artist_washed_up
+--
+CREATE TABLE artist_washed_up (
+ fk_artistid INTEGER PRIMARY KEY NOT NULL
+);
--
-- Table: cd
--- /dev/null
+{
+ "might_have" : {
+ "fetch" : 0
+ },
+ "belongs_to" : {
+ "fetch" : 0
+ },
+ "sets" : [
+ {
+ "class" : "Artist::WashedUp",
+ "quantity" : "all"
+ }
+ ],
+ "has_many" : {
+ "fetch" : 0
+ }
+}
+