make dump/populate work with mixed-case table names people/wdh/lc_table_name
Will Hawes [Wed, 28 Sep 2011 12:55:11 +0000 (13:55 +0100)]
lib/DBIx/Class/Fixtures.pm
t/07-dump-all.t
t/18-dump-mixed-case.t
t/lib/DBICTest.pm
t/lib/DBICTest/Schema.pm
t/lib/mysql.sql
t/lib/sqlite.sql

index 50b9fdf..e44827e 100644 (file)
@@ -712,7 +712,7 @@ sub dump_object {
 
 
   # write dir and gen filename
-  my $source_dir = $params->{set_dir}->subdir(lc $src->from);
+  my $source_dir = $params->{set_dir}->subdir($src->from);
   $source_dir->mkpath(0, 0777);
 
   # strip dir separators from file name
@@ -1163,7 +1163,7 @@ sub populate {
       foreach my $source (sort $schema->sources) {
         $self->msg("- adding " . $source);
         my $rs = $schema->resultset($source);
-        my $source_dir = $tmp_fixture_dir->subdir( lc $rs->result_source->from );
+        my $source_dir = $tmp_fixture_dir->subdir( $rs->result_source->from );
         next unless (-e $source_dir);
         my @rows;
         while (my $file = $source_dir->next) {
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 5deacbb..e23aacd 100644 (file)
@@ -1,7 +1,7 @@
 #!perl
 
 use DBIx::Class::Fixtures;
-use Test::More tests => 3;
+use Test::More tests => 4;
 use lib qw(t/lib);
 use DBICTest;
 use Path::Class;
@@ -15,7 +15,7 @@ my $config_dir = 't/var/configs';
 {
     # do dump
     ok(my $fixtures = DBIx::Class::Fixtures->new({ config_dir => $config_dir, debug => 0 }), 'object created with correct config dir');
-    ok($fixtures->dump({ config => 'simple.json', schema => $schema, directory => 't/var/fixtures' }), 'simple dump executed okay');
+    ok($fixtures->dump({ config => 'mixed-case.json', schema => $schema, directory => 't/var/fixtures' }), 'simple dump executed okay');
 
     # check dump is okay
     my $dir = dir('t/var/fixtures/MixedCase');
index bf36d1b..b2f9322 100755 (executable)
@@ -200,6 +200,11 @@ sub populate_schema {
         [ 17, 1, 2, "Apiary"],
         [ 18, 1, 3, "Beehind You"],
     ]);
+
+       $schema->populate('MixedCase', [
+               [qw/ id name /],
+               [ 1, 'some name' ]
+       ]);
 }
 
 1;
index 350eecc..52d756d 100644 (file)
@@ -5,6 +5,6 @@ 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 MixedCase/);
 
 1;
index ca1b034..f6e614a 100644 (file)
@@ -59,3 +59,12 @@ CREATE TABLE producer (
   producerid INTEGER PRIMARY KEY NOT NULL,
   name varchar(100) NOT NULL
 );
+
+--
+-- Table: MixedCase
+--
+DROP TABLE IF EXISTS MixedCase;
+CREATE TABLE MixedCase (
+  id INTEGER PRIMARY KEY NOT NULL,
+  name varchar(100) NOT NULL
+);
index 1e21627..a4452a0 100644 (file)
@@ -60,4 +60,12 @@ CREATE TABLE producer (
   name varchar(100) NOT NULL
 );
 
+--
+-- Table: MixedCase
+--
+CREATE TABLE MixedCase (
+  id INTEGER PRIMARY KEY NOT NULL,
+  name varchar(100) NOT NULL
+);
+
 COMMIT;