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; |
e55d9d89 |
10 | use Devel::Dwarn; |
6ebf5cbb |
11 | |
12 | BEGIN { |
13 | use_ok('DBIx::Class::ResultSource::View'); |
14 | } |
15 | |
d40f513f |
16 | ### SANITY |
17 | |
1e70d9dc |
18 | my $view = DBIx::Class::ResultSource::View->new( { name => 'Quux' } ); |
66fb15b6 |
19 | |
d40f513f |
20 | isa_ok( $view, 'DBIx::Class::ResultSource', 'A new view'); |
21 | isa_ok( $view, 'DBIx::Class', 'A new view also'); |
6ebf5cbb |
22 | |
e55d9d89 |
23 | can_ok( $view, $_ ) for qw/new from deploy_depends_on/; |
6ebf5cbb |
24 | |
d40f513f |
25 | ### DEPS |
6ebf5cbb |
26 | |
27 | my $schema = ViewDeps->connect; |
1e70d9dc |
28 | ok( $schema, 'Connected to ViewDeps schema OK' ); |
e55d9d89 |
29 | my $bar_rs = $schema->resultset('Bar'); |
30 | #diag(DwarnS $bar_rs->result_source); |
6ebf5cbb |
31 | |
e55d9d89 |
32 | my @bar_deps = keys %{ $schema->resultset('Bar')->result_source->deploy_depends_on }; |
6ebf5cbb |
33 | |
e55d9d89 |
34 | my @foo_deps = keys %{ $schema->resultset('Foo')->result_source->deploy_depends_on }; |
66fb15b6 |
35 | |
1e70d9dc |
36 | isa_ok( $schema->resultset('Bar')->result_source, |
37 | 'DBIx::Class::ResultSource::View', 'Bar' ); |
66fb15b6 |
38 | |
1e70d9dc |
39 | is( $bar_deps[0], 'mixin', 'which is reported to depend on mixin.' ); |
40 | is( $foo_deps[0], undef, 'Foo has no dependencies...' ); |
41 | |
42 | isa_ok( |
43 | $schema->resultset('Foo')->result_source, |
44 | 'DBIx::Class::ResultSource::View', |
45 | 'though Foo' |
46 | ); |
d40f513f |
47 | isa_ok( |
48 | $schema->resultset('Baz')->result_source, |
49 | 'DBIx::Class::ResultSource::Table', |
50 | "Baz on the other hand" |
51 | ); |
52 | dies_ok { |
e55d9d89 |
53 | ViewDeps::Result::Baz->result_source_instance->deploy_depends_on( |
d40f513f |
54 | { ViewDeps::Result::Mixin->result_source_instance->name => 1 } ); |
55 | } |
e55d9d89 |
56 | "...and you cannot use deploy_depends_on with that"; |
6ebf5cbb |
57 | |
58 | done_testing; |