deployment_statements() and cursor_class() are storage-dependent
[dbsrgits/DBIx-Class.git] / t / storage / deploy.t
CommitLineData
4068e05f 1use strict;
2use warnings;
3
4use Test::More;
91d0c99f 5use Test::Exception;
1759f82f 6use Path::Class qw/dir/;
4068e05f 7
8use lib qw(t/lib);
9use DBICTest;
10
43d2a76e 11BEGIN {
12 require DBIx::Class;
13 plan skip_all =>
14 'Test needs ' . DBIx::Class::Optional::Dependencies->req_missing_for ('deploy')
15 unless DBIx::Class::Optional::Dependencies->req_ok_for ('deploy')
16}
17
1759f82f 18# this is how maint/gen_schema did it (connect() to force a storage
19# instance, but no conninfo)
20# there ought to be more code like this in the wild
21like(
22 DBICTest::Schema->connect->deployment_statements('SQLite'),
23 qr/\bCREATE TABLE\b/i
24);
91d0c99f 25
26lives_ok( sub {
27 my $parse_schema = DBICTest->init_schema(no_deploy => 1);
28 $parse_schema->deploy({},'t/lib/test_deploy');
29 $parse_schema->resultset("Artist")->all();
30}, 'artist table deployed correctly' );
31
4068e05f 32my $schema = DBICTest->init_schema();
33
8d6b1478 34my $var = dir ("t/var/ddl_dir-$$");
35$var->mkpath unless -d $var;
4068e05f 36
076be7c4 37my $test_dir_1 = $var->subdir ('test1', 'foo', 'bar' );
8d6b1478 38$test_dir_1->rmtree if -d $test_dir_1;
4068e05f 39$schema->create_ddl_dir( undef, undef, $test_dir_1 );
40
076be7c4 41ok( -d $test_dir_1, 'create_ddl_dir did a make_path on its target dir' );
4068e05f 42ok( scalar( glob $test_dir_1.'/*.sql' ), 'there are sql files in there' );
43
4ca1fd6f 44{
45 local $TODO = 'we should probably add some tests here for actual deployability of the DDL?';
46 ok( 0 );
4068e05f 47}
48
8d6b1478 49END {
50 $var->rmtree;
51}
52
4068e05f 53done_testing;