Change ViewDeps schema to use meaningful tables; use the number of views a view depen...
[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;
7364d776 10use Devel::Dwarn;
11use Data::Dumper;
6ebf5cbb 12
13BEGIN {
14 use_ok('DBIx::Class::ResultSource::View');
15}
16
d40f513f 17### SANITY
18
1e70d9dc 19my $view = DBIx::Class::ResultSource::View->new( { name => 'Quux' } );
66fb15b6 20
9efcc79f 21isa_ok( $view, 'DBIx::Class::ResultSource', 'A new view' );
22isa_ok( $view, 'DBIx::Class', 'A new view also' );
6ebf5cbb 23
e55d9d89 24can_ok( $view, $_ ) for qw/new from deploy_depends_on/;
6ebf5cbb 25
d40f513f 26### DEPS
6ebf5cbb 27
28my $schema = ViewDeps->connect;
1e70d9dc 29ok( $schema, 'Connected to ViewDeps schema OK' );
9efcc79f 30
7364d776 31my $deps_ref = {
32 map {
33 $schema->resultset($_)->result_source->source_name =>
34 $schema->resultset($_)->result_source->deploy_depends_on
35 }
36 grep {
37 $schema->resultset($_)
38 ->result_source->isa('DBIx::Class::ResultSource::View')
39 } @{ [ $schema->sources ] }
40};
41
42diag( Dwarn $deps_ref);
43
44
45#isa_ok( $schema->resultset('Bar')->result_source,
46#'DBIx::Class::ResultSource::View', 'Bar' );
47
48#is( $bar_deps[0], 'baz', 'which is reported to depend on baz...' );
49#is( $bar_deps[1], 'mixin', 'and on mixin.' );
50#is( $foo_deps[0], undef, 'Foo has no declared dependencies...' );
51
52#isa_ok(
53#$schema->resultset('Foo')->result_source,
54#'DBIx::Class::ResultSource::View',
55#'though Foo'
56#);
57#isa_ok(
58#$schema->resultset('Baz')->result_source,
59#'DBIx::Class::ResultSource::Table',
60#"Baz on the other hand"
61#);
62#dies_ok {
63#ViewDeps::Result::Baz->result_source_instance
64#->deploy_depends_on("ViewDeps::Result::Mixin");
65#}
66#"...and you cannot use deploy_depends_on with that";
67
68### DEPLOY
bf5c3a3f 69
ebed3aaf 70my $dir = "t/sql";
7364d776 71$schema->create_ddl_dir( [ 'PostgreSQL', 'SQLite' ], 0.1, $dir );
bf5c3a3f 72
6ebf5cbb 73done_testing;