use File::Temp;
use Test::More qw(no_plan);
use Test::Exception;
-#use Devel::Dwarn;
+use LoadTest;
-BEGIN { use_ok 'MTITest'; }
+BEGIN {
+ $ENV{DBIC_TRACE} = 0;
+}
-dies_ok { MTITest->source('Foo')->view_definition }
- "Can't generate view def without connected schema";
+my ( $dsn, $user, $pass )
+ = @ENV{ map {"DBICTEST_PG_${_}"} qw/DSN USER PASS/ };
-#my $schema = MTITest->connect('dbi:SQLite::memory:');
-my $schema = MTITest->connect('dbi:Pg:dbname=mti','postgres','');
+plan skip_all => <<'EOM' unless $dsn && $user;
+Set $ENV{DBICTEST_PG_DSN}, _USER and _PASS to run this test
+( NOTE: This test drops and creates some tables.')
+EOM
-#diag("MTITest view definition: ", $schema->resultset('Bar')->result_source->view_definition);
-my $dir = "t/sql"; # tempdir(CLEANUP => 0);
+dies_ok { LoadTest->source('Foo')->view_definition }
+"Can't generate view def without connected schema";
+
+my $schema = LoadTest->connect( $dsn, $user, $pass );
+$schema->storage->ensure_connected;
+$schema->storage->dbh->{Warn} = 0;
+
+my $dir = "t/sql"; # tempdir(CLEANUP => 0);
+
+lives_ok { $schema->create_ddl_dir( ['PostgreSQL'], 0.1, $dir ) }
+"It's OK to create_ddl_dir";
+lives_ok {
+ $schema->deploy( { add_drop_table => 1, add_drop_view => 1, } );
+}
+"It's also OK to deploy the schema";
+
+isa_ok(
+ $schema->source('Bar'),
+ 'DBIx::Class::ResultSource::View',
+ "My MTI class also"
+);
+
+my $sqlt_object = $schema->{sqlt};
+
+is_deeply(
+ [ map { $_->name } $sqlt_object->get_views ],
+ [ qw/
+ foo
+ bar
+ /
+ ],
+ "SQLT view order triumphantly matches our order."
+);
-$schema->create_ddl_dir([ 'PostgreSQL' ], 0.1, $dir);
-$schema->deploy({add_drop_table => 1, add_drop_view => 1});
-#diag DwarnS $schema->source($_)->view_definition for qw(Foo Bar);
-#diag DwarnS $schema->source($_) for qw(Foo Bar);