- Add table Artist_UC to the test data fix-test
mikew [Fri, 11 Oct 2013 13:42:22 +0000 (09:42 -0400)]
- Add ResultSource Artist_UC_RS.
  This will test cases where resultsource name is not the same as the
  table name
- Fix t/12-populate-basic.t to use $source->from instead of $source->name
  to find directory to load. dump uses ->from

t/07-dump-all.t
t/12-populate-basic.t
t/lib/DBICTest.pm
t/lib/DBICTest/Schema.pm
t/lib/DBICTest/Schema/Artist_UC_RS.pm [new file with mode: 0644]
t/lib/mysql.sql
t/lib/sqlite.sql
t/var/configs/simple.json

index 57b73d7..7617733 100644 (file)
@@ -7,7 +7,7 @@ use DBICTest;
 use Path::Class;
 use Data::Dumper; 
 
-plan tests => 16;
+plan tests => 18;
 
 # set up and populate schema
 ok(my $schema = DBICTest->init_schema( ), 'got schema');
index e37f490..c60be1c 100644 (file)
@@ -38,7 +38,7 @@ foreach my $set ('simple', 'quantity', 'fetch', 'rules') {
 
   my $fixture_dir = dir('t/var/fixtures');
   foreach my $class ($schema->sources) {
-    my $source_dir = dir($fixture_dir, lc($class));
+    my $source_dir = dir($fixture_dir, lc $schema->source($class)->from);
     is($schema->resultset($class)->count, 
        (-e $source_dir) ? scalar($source_dir->children) : 0, 
        "correct number of $set " . lc($class)
index 988e02b..488e827 100755 (executable)
@@ -211,6 +211,15 @@ sub populate_schema {
         [ 17, 1, 2, "Apiary"],
         [ 18, 1, 3, "Beehind You"],
     ]);
+
+    $schema->populate('Artist_UC_RS', [
+        [ qw/artistid name/ ],
+        [ 1, 'Caterwauler McCrae' ],
+        [ 2, 'Random Boy Band' ],
+        [ 3, 'We Are Goth' ],
+        [ 4, '' ], # Test overridden new will default name to "Test Name" using use_create => 1.
+        [ 32948, 'Big PK' ],
+    ]);
 }
 
 1;
index 350eecc..69c5bee 100644 (file)
@@ -4,7 +4,7 @@ package # hide from PAUSE
 use base qw/DBIx::Class::Schema/;
 
 no warnings qw/qw/;
-
-__PACKAGE__->load_classes(qw/Artist CD Track Tag Producer CD_to_Producer/);
+__PACKAGE__->load_classes(qw/Artist CD Track Tag Producer CD_to_Producer Artist_UC_RS/);
 
 1;
diff --git a/t/lib/DBICTest/Schema/Artist_UC_RS.pm b/t/lib/DBICTest/Schema/Artist_UC_RS.pm
new file mode 100644 (file)
index 0000000..2549eae
--- /dev/null
@@ -0,0 +1,28 @@
+package # hide from PAUSE 
+    DBICTest::Schema::Artist_UC_RS;
+
+use base 'DBIx::Class::Core';
+
+__PACKAGE__->table('Artist_UC');
+__PACKAGE__->add_columns(
+  'artistid' => {
+    data_type => 'integer',
+    is_auto_increment => 1,
+  },
+  'name' => {
+    data_type => 'varchar',
+    size      => 100,
+    is_nullable => 1,
+  },
+);
+__PACKAGE__->set_primary_key('artistid');
+
+sub new {
+       my ( $class, $args ) = @_;
+
+       $args->{name} = "Test Name" unless $args->{name};
+
+       return $class->next::method( $args );
+}
+
+1;
index ca1b034..d648b45 100644 (file)
@@ -59,3 +59,11 @@ CREATE TABLE producer (
   producerid INTEGER PRIMARY KEY NOT NULL,
   name varchar(100) NOT NULL
 );
+
+--
+-- Table:: Artist_UC
+--
+CREATE TABLE Artist_UC (
+  artistid INTEGER PRIMARY KEY NOT NULL,
+  name varchar(100)
+);
index 1e21627..b74a42a 100644 (file)
@@ -60,4 +60,13 @@ CREATE TABLE producer (
   name varchar(100) NOT NULL
 );
 
+--
+-- Table:: Artist_UC
+--
+CREATE TABLE Artist_UC (
+  artistid INTEGER PRIMARY KEY NOT NULL,
+  name varchar(100)
+);
+  
+
 COMMIT;
index 44754a3..3be6439 100644 (file)
@@ -8,5 +8,9 @@
         "sets": [{
             "class": "Artist",
             "quantity": 1
-        }]
-}
\ No newline at end of file
+        },
+               {
+            "class": "Artist_UC_RS",
+            "quantity": 2
+               }]
+}