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