X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F746sybase.t;h=9fc87f066da817193e9e8852a470ea4ecef41371;hb=212cc5c25c31b2ec3ff4b4e20283321617db79e6;hp=035091f4723e1eb82b97f2a3f56b59035151760e;hpb=0814e8043fb4dbad52bab9d77f5c9891feaa77d9;p=dbsrgits%2FDBIx-Class.git diff --git a/t/746sybase.t b/t/746sybase.t index 035091f..9fc87f0 100644 --- a/t/746sybase.t +++ b/t/746sybase.t @@ -2,43 +2,43 @@ use strict; use warnings; use Test::More; +use Test::Exception; use lib qw(t/lib); use DBICTest; -use DBIx::Class::Storage::DBI::Sybase::DateTime; my ($dsn, $user, $pass) = @ENV{map { "DBICTEST_SYBASE_${_}" } qw/DSN USER PASS/}; plan skip_all => 'Set $ENV{DBICTEST_SYBASE_DSN}, _USER and _PASS to run this test' unless ($dsn && $user); -plan tests => 15; +plan tests => 13; my $schema = DBICTest::Schema->connect($dsn, $user, $pass, {AutoCommit => 1}); +# start disconnected to test reconnection $schema->storage->ensure_connected; +$schema->storage->_dbh->disconnect; + isa_ok( $schema->storage, 'DBIx::Class::Storage::DBI::Sybase' ); +my $dbh; +lives_ok (sub { + $dbh = $schema->storage->dbh; +}, 'reconnect works'); + $schema->storage->dbh_do (sub { my ($storage, $dbh) = @_; eval { $dbh->do("DROP TABLE artist") }; - eval { $dbh->do("DROP TABLE track") }; $dbh->do(<<'SQL'); + CREATE TABLE artist ( - artistid INT IDENTITY PRIMARY KEY, + artistid INT IDENTITY NOT NULL, name VARCHAR(100), rank INT DEFAULT 13 NOT NULL, - charfield CHAR(10) NULL + charfield CHAR(10) NULL, + primary key(artistid) ) -SQL -# we only need the DT - $dbh->do(<<'SQL'); -CREATE TABLE track ( - trackid INT IDENTITY PRIMARY KEY, - cd INT, - position INT, - last_updated_on DATETIME, -) SQL }); @@ -61,7 +61,9 @@ for (1..6) { $seen_id{$new->artistid}++; } -my $it = $schema->resultset('Artist')->search( {}, { +my $it; + +$it = $schema->resultset('Artist')->search( {}, { rows => 3, order_by => 'artistid', }); @@ -80,26 +82,10 @@ $it->next; is( $it->next->name, "Artist 2", "iterator->next ok" ); is( $it->next, undef, "next past end of resultset ok" ); -# Test DateTime inflation - -my $dt = DBIx::Class::Storage::DBI::Sybase::DateTime - ->parse_datetime('2004-08-21T14:36:48.080Z'); - -my $row; -ok( $row = $schema->resultset('Track')->create({ - last_updated_on => $dt, - cd => 1, -})); -ok( $row = $schema->resultset('Track') - ->search({ trackid => $row->trackid }, { select => ['last_updated_on'] }) - ->first -); -is( $row->updated_date, $dt, 'DateTime inflation works' ); # clean up our mess END { - if (my $dbh = eval { $schema->storage->_dbh }) { - $dbh->do('DROP TABLE artist'); - $dbh->do('DROP TABLE track'); - } + my $dbh = eval { $schema->storage->_dbh }; + $dbh->do('DROP TABLE artist') if $dbh; } +