+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()
__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');
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;
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' );
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',
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(
)
);
-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);