5 my $db_file = "t/var/NSplain.db";
7 unlink($db_file) if -e $db_file;
8 unlink($db_file . "-journal") if -e $db_file . "-journal";
9 mkdir("t/var") unless -d "t/var";
11 my $dsn = "dbi:SQLite:${db_file}";
14 local $SIG{__WARN__} = sub {};
16 use base qw/DBIx::Class::Schema/;
17 __PACKAGE__->load_namespaces;
19 ok(!$@, 'load_namespaces does not die') or diag $@;
22 package Derived::Schema::Result::A;
23 use base qw/DBICNSTest::Result::A/;
24 sub whoami { 'derived result' }
26 ok(!$@, 'Deriving result does not die') or diag $@;
29 my $model = DBICNSTest->connect($dsn);
30 $model->storage->dbh_do(sub { $_[1]->do('CREATE TABLE a (a INT)')});
31 $model->populate('A', [ [ 'a' ], [ 17 ] ]);
33 my $derived_model = DBICNSTest->compose_namespace('Derived::Schema')->connect($dsn);
35 my $rset = DBICNSTest->resultset('A');
36 isa_ok($rset, 'DBICNSTest::ResultSet::A');
38 my $rset = $derived_model->resultset('A');
39 isa_ok($rset, 'Derived::Schema::ResultSet::A','Derived resultset');
41 my $result = $rset->search({})->first;
42 is($result->a(), 17, 'Value of base result seen in derived result');
43 isa_ok($result, 'Derived::Schema::Result::A', 'Derived schema result');
44 can_ok($result, 'whoami');