Fix silent failures on autoinc PK without an is_auto_increment attribute
[dbsrgits/DBIx-Class.git] / t / row / inflate_result.t
index 370c205..b650302 100644 (file)
@@ -1,8 +1,17 @@
+BEGIN { do "./t/lib/ANFANG.pm" or die ( $@ || $! ) }
+
+use warnings;
+use strict;
+
+use Test::More;
+
+
+use DBICTest;
+
 package My::Schema::Result::User;
 
 use strict;
 use warnings;
-use DBIx::Class::ResultClass::HashRefInflator;
 use base qw/DBIx::Class::Core/;
 
 ### Define what our admin class is, for ensure_class_loaded()
@@ -11,9 +20,8 @@ my $admin_class = __PACKAGE__ . '::Admin';
 __PACKAGE__->table('users');
 
 __PACKAGE__->add_columns(
-    qw/user_id   email    password
-      firstname lastname active
-      admin/
+  user_id => { retrieve_on_insert => 1 },
+  qw( email password firstname lastname active admin ),
 );
 
 __PACKAGE__->set_primary_key('user_id');
@@ -21,7 +29,6 @@ __PACKAGE__->set_primary_key('user_id');
 sub inflate_result {
     my $self = shift;
     my $ret  = $self->next::method(@_);
-    
     if ( $ret->admin ) {    ### If this is an admin, rebless for extra functions
         $self->ensure_class_loaded($admin_class);
         bless $ret, $admin_class;
@@ -52,7 +59,7 @@ sub do_admin_stuff {
 
 package My::Schema;
 
-use base qw/DBIx::Class::Schema/;
+use base qw/DBICTest::BaseSchema/;
 
 My::Schema->register_class( Admin => 'My::Schema::Result::User::Admin' );
 My::Schema->register_class( User  => 'My::Schema::Result::User' );
@@ -60,13 +67,6 @@ My::Schema->register_class( User  => 'My::Schema::Result::User' );
 1;
 
 package main;
-
-use lib qw(t/lib);
-use DBICTest;
-use DBIx::Class::ResultClass::HashRefInflator;
-
-use Test::More;
-
 my $user_data = {
     email    => 'someguy@place.com',
     password => 'pass1',
@@ -79,7 +79,7 @@ my $admin_data = {
     admin    => 1
 };
 
-ok( my $schema = My::Schema->connection('dbi:SQLite:dbname=:memory:') );
+ok( my $schema = My::Schema->connect(DBICTest->_database) );
 
 ok(
     $schema->storage->dbh->do(
@@ -87,16 +87,14 @@ ok(
     )
 );
 
-my $rs = $schema->resultset('User');
-
-TODO: {
-    local $TODO = 'New objects should also be inflated';
-    my $user  = $rs->create($user_data);
-    my $admin = $rs->create($admin_data);
+{
+  my $user  = $schema->resultset('User')->create($user_data);
+  my $admin = $schema->resultset('User')->create($admin_data);
 
-    is( ref $user,  'My::Schema::Result::User' );
-    is( ref $admin, 'My::Schema::Result::User::Admin' );
+  is( ref $user,  'My::Schema::Result::User' );
 
+  local $TODO = 'New objects should also be inflated';
+  is( ref $admin, 'My::Schema::Result::User::Admin' );
 }
 
 my $user  = $schema->resultset('User')->single($user_data);