Merge 'current' into 'mssql_tweaks'
[dbsrgits/DBIx-Class-Schema-Loader.git] / t / 17mssql_dot_in_table_name.t
CommitLineData
385c593b 1use strict;
2use lib qw(t/lib);
3use Test::More;
4use DBI;
5
6my $DUMP_DIR;
7BEGIN {
8 $DUMP_DIR = './t/_common_dump';
9}
10
11use lib $DUMP_DIR;
12use DBIx::Class::Schema::Loader 'make_schema_at', "dump_to_dir:$DUMP_DIR";
13use File::Path;
14
046e344c 15my $dsn = $ENV{DBICTEST_MSSQL_ODBC_DSN} ||
16 $ENV{DBICTEST_MSSQL_DSN} || '';
17
18my $user = $ENV{DBICTEST_MSSQL_ODBC_USER} ||
19 $ENV{DBICTEST_MSSQL_USER} || '';
20
21my $password = $ENV{DBICTEST_MSSQL_ODBC_PASS} ||
22 $ENV{DBICTEST_MSSQL_PASS} || '';
385c593b 23
24if( !$dsn || !$user ) {
046e344c 25 plan skip_all =>
26'You need to set the DBICTEST_MSSQL_ODBC_DSN (or DBICTEST_MSSQL_DSN), _USER,' .
27' and _PASS environment variables';
385c593b 28 exit;
29}
30
31plan tests => 3;
32
33my $dbh = DBI->connect($dsn, $user, $password, {
34 RaiseError => 1, PrintError => 0
35});
36
ec5632bc 37eval { $dbh->do('DROP TABLE [loadertest.dot]') };
385c593b 38$dbh->do(q{
ec5632bc 39 CREATE TABLE [loadertest.dot] (
385c593b 40 id INT IDENTITY NOT NULL PRIMARY KEY,
41 dat VARCHAR(8)
42 )
43});
44
45rmtree $DUMP_DIR;
46
47eval {
48 make_schema_at(
49 'TestSL::Schema',
ec5632bc 50 {
51 use_namespaces => 1,
52 constraint => qr/^loadertest\.dot\z/
53 },
6ed0a90c 54 [ $dsn, $user, $password, ]
385c593b 55 );
56};
57
58ok !$@, 'table name with . parsed correctly';
59diag $@ if $@;
60
ec5632bc 61#system qq{$^X -pi -e 's/"test\.dot"/\\\\"[loadertest.dot]"/' t/_common_dump/TestSL/Schema/Result/TestDot.pm};
385c593b 62#diag do { local ($/, @ARGV) = (undef, "t/_common_dump/TestSL/Schema/Result/TestDot.pm"); <> };
ff30991a 63#do "t/_common_dump/TestSL/Schema/Result/TestDot.pm";
6ed0a90c 64
65eval 'use TestSL::Schema';
66ok !$@, 'loaded schema';
385c593b 67diag $@ if $@;
68
6ed0a90c 69TODO: {
70 local $TODO = q{this is really a DBIC test to check if the table is usable,
71and it doesn't work in the released version yet};
72
73 eval {
ec5632bc 74 my $rs = TestSL::Schema->resultset('LoadertestDot');
6ed0a90c 75 my $row = $rs->create({ dat => 'foo' });
76 $row->update({ dat => 'bar' });
77 $row = $rs->find($row->id);
78 $row->delete;
79 };
80 ok !$@, 'used table from DBIC succeessfully';
81 diag $@ if $@;
82}
83
ff30991a 84rmtree $DUMP_DIR;
385c593b 85
ec5632bc 86$dbh->do('DROP TABLE [loadertest.dot]');