Clean up test file.
[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);
6ebf5cbb 9use ViewDeps;
10
11BEGIN {
12 use_ok('DBIx::Class::ResultSource::View');
13}
14
b7b008a2 15#################### SANITY
d40f513f 16
1e70d9dc 17my $view = DBIx::Class::ResultSource::View->new( { name => 'Quux' } );
66fb15b6 18
9efcc79f 19isa_ok( $view, 'DBIx::Class::ResultSource', 'A new view' );
20isa_ok( $view, 'DBIx::Class', 'A new view also' );
6ebf5cbb 21
e55d9d89 22can_ok( $view, $_ ) for qw/new from deploy_depends_on/;
6ebf5cbb 23
b7b008a2 24#################### DEPS
25
2446dc59 26my @sql_files = glob("t/sql/ViewDeps*.sql");
27for (@sql_files) {
28 ok( unlink($_), "Deleted old SQL $_ OK" );
29}
6ebf5cbb 30
2446dc59 31my $schema = ViewDeps->connect( 'dbi:SQLite:dbname=t/var/viewdeps.db',
32 { quote_char => '"', } );
1e70d9dc 33ok( $schema, 'Connected to ViewDeps schema OK' );
9efcc79f 34
7364d776 35my $deps_ref = {
36 map {
b7b008a2 37 $schema->resultset($_)->result_source->name =>
7364d776 38 $schema->resultset($_)->result_source->deploy_depends_on
39 }
40 grep {
41 $schema->resultset($_)
42 ->result_source->isa('DBIx::Class::ResultSource::View')
43 } @{ [ $schema->sources ] }
44};
45
aaa03c5d 46my @sorted_sources =
47 sort {
48 keys %{ $deps_ref->{$a} || {} }
49 <=>
50 keys %{ $deps_ref->{$b} || {} }
2446dc59 51 || $a cmp $b
52 }
53 keys %$deps_ref;
7364d776 54
b7b008a2 55#################### DEPLOY
bf5c3a3f 56
2446dc59 57my $ddl_dir = "t/sql";
58$schema->create_ddl_dir( [ 'PostgreSQL', 'MySQL', 'SQLite' ], 0.1, $ddl_dir );
59
60ok( -e $_, "$_ was created successfully" ) for @sql_files;
61
62$schema->deploy( { add_drop_table => 1 } );
63
b7b008a2 64#################### DOES ORDERING WORK?
65
66my $tr = $schema->{sqlt};
b7b008a2 67
aaa03c5d 68my @keys = keys %{$tr->{views}};
b7b008a2 69
70my @sqlt_sources =
aaa03c5d 71 sort {
72 $tr->{views}->{$a}->{order}
73 cmp
74 $tr->{views}->{$b}->{order}
75 }
76 @keys;
2446dc59 77
de9cac75 78is_deeply(\@sorted_sources,\@sqlt_sources,"SQLT view order triumphantly matches our order.");
bf5c3a3f 79
6ebf5cbb 80done_testing;