New parser sort functions fulfills its purpose but appears to make deploy_depends_on...
[dbsrgits/DBIx-Class.git] / t / 105view_deps.t
CommitLineData
6ebf5cbb 1#!/usr/bin/perl
2
3use strict;
4use warnings;
5
6use Test::More;
7use Test::Exception;
8use lib qw(t/lib);
6ebf5cbb 9use ViewDeps;
e55d9d89 10use Devel::Dwarn;
6ebf5cbb 11
12BEGIN {
13 use_ok('DBIx::Class::ResultSource::View');
14}
15
d40f513f 16### SANITY
17
1e70d9dc 18my $view = DBIx::Class::ResultSource::View->new( { name => 'Quux' } );
66fb15b6 19
9efcc79f 20isa_ok( $view, 'DBIx::Class::ResultSource', 'A new view' );
21isa_ok( $view, 'DBIx::Class', 'A new view also' );
6ebf5cbb 22
e55d9d89 23can_ok( $view, $_ ) for qw/new from deploy_depends_on/;
6ebf5cbb 24
d40f513f 25### DEPS
6ebf5cbb 26
27my $schema = ViewDeps->connect;
1e70d9dc 28ok( $schema, 'Connected to ViewDeps schema OK' );
e55d9d89 29my $bar_rs = $schema->resultset('Bar');
9efcc79f 30
e55d9d89 31#diag(DwarnS $bar_rs->result_source);
6ebf5cbb 32
9efcc79f 33my @bar_deps
34 = keys %{ $schema->resultset('Bar')->result_source->deploy_depends_on };
6ebf5cbb 35
9efcc79f 36my @foo_deps
37 = keys %{ $schema->resultset('Foo')->result_source->deploy_depends_on };
66fb15b6 38
1e70d9dc 39isa_ok( $schema->resultset('Bar')->result_source,
40 'DBIx::Class::ResultSource::View', 'Bar' );
66fb15b6 41
9efcc79f 42is( $bar_deps[0], 'baz', 'which is reported to depend on baz...' );
bf5c3a3f 43is( $bar_deps[1], 'mixin', 'and on mixin.' );
1e70d9dc 44is( $foo_deps[0], undef, 'Foo has no dependencies...' );
45
46isa_ok(
47 $schema->resultset('Foo')->result_source,
48 'DBIx::Class::ResultSource::View',
49 'though Foo'
50);
d40f513f 51isa_ok(
52 $schema->resultset('Baz')->result_source,
53 'DBIx::Class::ResultSource::Table',
54 "Baz on the other hand"
55);
56dies_ok {
9efcc79f 57 ViewDeps::Result::Baz->result_source_instance
58 ->deploy_depends_on("ViewDeps::Result::Mixin");
d40f513f 59}
e55d9d89 60"...and you cannot use deploy_depends_on with that";
6ebf5cbb 61
9efcc79f 62diag(
63 "ViewDeps::Foo view definition: ",
64 ViewDeps->source('Foo')->view_definition
65);
66diag( "schema->rs(Bar) view definition: ",
67 $schema->resultset('Bar')->result_source->view_definition );
bf5c3a3f 68
9efcc79f 69my $dir = "t/sql"; # tempdir(CLEANUP => 0);
70$schema->create_ddl_dir( ['PostgreSQL','SQLite'], 0.1, $dir );
bf5c3a3f 71
6ebf5cbb 72done_testing;