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