Commit | Line | Data |
6ebf5cbb |
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); |
6ebf5cbb |
9 | use ViewDeps; |
7364d776 |
10 | use Devel::Dwarn; |
11 | use Data::Dumper; |
6ebf5cbb |
12 | |
13 | BEGIN { |
14 | use_ok('DBIx::Class::ResultSource::View'); |
15 | } |
16 | |
d40f513f |
17 | ### SANITY |
18 | |
1e70d9dc |
19 | my $view = DBIx::Class::ResultSource::View->new( { name => 'Quux' } ); |
66fb15b6 |
20 | |
9efcc79f |
21 | isa_ok( $view, 'DBIx::Class::ResultSource', 'A new view' ); |
22 | isa_ok( $view, 'DBIx::Class', 'A new view also' ); |
6ebf5cbb |
23 | |
e55d9d89 |
24 | can_ok( $view, $_ ) for qw/new from deploy_depends_on/; |
6ebf5cbb |
25 | |
d40f513f |
26 | ### DEPS |
6ebf5cbb |
27 | |
28 | my $schema = ViewDeps->connect; |
1e70d9dc |
29 | ok( $schema, 'Connected to ViewDeps schema OK' ); |
9efcc79f |
30 | |
7364d776 |
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 |
bf5c3a3f |
69 | |
ebed3aaf |
70 | my $dir = "t/sql"; |
7364d776 |
71 | $schema->create_ddl_dir( [ 'PostgreSQL', 'SQLite' ], 0.1, $dir ); |
bf5c3a3f |
72 | |
6ebf5cbb |
73 | done_testing; |