Change ViewDeps schema to use meaningful tables; use the number of views a view depen...
[dbsrgits/DBIx-Class.git] / t / 105view_deps.t
1 #!/usr/bin/perl
2
3 use strict;
4 use warnings;
5
6 use Test::More;
7 use Test::Exception;
8 use lib qw(t/lib);
9 use ViewDeps;
10 use Devel::Dwarn;
11 use Data::Dumper;
12
13 BEGIN {
14     use_ok('DBIx::Class::ResultSource::View');
15 }
16
17 ### SANITY
18
19 my $view = DBIx::Class::ResultSource::View->new( { name => 'Quux' } );
20
21 isa_ok( $view, 'DBIx::Class::ResultSource', 'A new view' );
22 isa_ok( $view, 'DBIx::Class', 'A new view also' );
23
24 can_ok( $view, $_ ) for qw/new from deploy_depends_on/;
25
26 ### DEPS
27
28 my $schema = ViewDeps->connect;
29 ok( $schema, 'Connected to ViewDeps schema OK' );
30
31 my $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
42 diag( 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
69
70 my $dir = "t/sql";
71 $schema->create_ddl_dir( [ 'PostgreSQL', 'SQLite' ], 0.1, $dir );
72
73 done_testing;