Added missing space in error message
[dbsrgits/DBIx-Class-Schema-Loader.git] / t / lib / dbixcsl_common_tests.pm
index d1d3d48..d1a66fd 100644 (file)
@@ -34,10 +34,16 @@ sub skip_tests {
     plan skip_all => $why;
 }
 
+sub _monikerize {
+    my $name = shift;
+    return 'LoaderTest2X' if $name =~ /^loader_test2$/i;
+    return undef;
+}
+
 sub run_tests {
     my $self = shift;
 
-    plan tests => 49;
+    plan tests => 54;
 
     $self->create();
 
@@ -46,9 +52,8 @@ sub run_tests {
     my $debug = ($self->{verbose} > 1) ? 1 : 0;
 
     my %loader_opts = (
-        dsn                     => $self->{dsn},
-        user                    => $self->{user},
-        password                => $self->{password},
+        connect_info            => [ $self->{dsn}, $self->{user},
+                                     $self->{password} ],
         constraint              => '^(?:\S+\.)?(?i:loader_test)[0-9]+$',
         relationships           => 1,
         additional_classes      => 'TestAdditional',
@@ -56,6 +61,8 @@ sub run_tests {
         left_base_classes       => [ qw/TestLeftBase/ ],
         components              => [ qw/TestComponent/ ],
         resultset_components    => [ qw/TestRSComponent/ ],
+        inflect_map             => { loader_test4 => 'loader_test4zes' },
+        moniker_map             => \&_monikerize,
         debug                   => $debug,
     );
 
@@ -85,6 +92,8 @@ sub run_tests {
     isa_ok( $rsobj1, "DBIx::Class::ResultSet" );
     isa_ok( $rsobj2, "DBIx::Class::ResultSet" );
 
+    is($moniker2, 'LoaderTest2X', "moniker_map testing");
+
     {
         my ($skip_tab, $skip_tabo, $skip_taba, $skip_cmeth,
             $skip_rsmeth, $skip_tcomp, $skip_trscomp);
@@ -96,10 +105,10 @@ sub run_tests {
         can_ok( $rsobj1, 'dbix_class_testrscomponent' ) or $skip_trscomp = 1;
         can_ok( $class1, 'loader_test1_classmeth' ) or $skip_cmeth = 1;
 
-       TODO: {
-           local $TODO = "Not yet supported by ResultSetManger code";
+        TODO: {
+            local $TODO = "Not yet supported by ResultSetManger code";
             can_ok( $rsobj1, 'loader_test1_rsmeth' ) or $skip_rsmeth = 1;
-       }
+        }
 
         SKIP: {
             skip "Pre-requisite test failed", 1 if $skip_tab;
@@ -149,6 +158,17 @@ sub run_tests {
     is( $obj->id,  1 );
     is( $obj->dat, "foo" );
     is( $rsobj2->count, 4 );
+    my $saved_id;
+    eval {
+        my $new_obj1 = $rsobj1->create({ dat => 'newthing' });
+       $saved_id = $new_obj1->id;
+    };
+    ok(!$@) or diag "Died during create new record using a PK::Auto key: $@";
+    ok($saved_id) or diag "Failed to get PK::Auto-generated id";
+
+    my $new_obj1 = $rsobj1->search({ dat => 'newthing' })->first;
+    ok($new_obj1) or diag "Cannot find newly inserted PK::Auto record";
+    is($new_obj1->id, $saved_id);
 
     my ($obj2) = $rsobj2->find( dat => 'bbb' );
     is( $obj2->id, 2 );
@@ -197,7 +217,7 @@ sub run_tests {
         isa_ok( $obj4->fkid, $class3);
 
         my $obj3 = $rsobj3->find(1);
-        my $rs_rel4 = $obj3->search_related('loader_test4s');
+        my $rs_rel4 = $obj3->search_related('loader_test4zes');
         isa_ok( $rs_rel4->first, $class4);
 
         # fk def in comments should not be parsed