X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F746sybase.t;h=91bfb242945717a1f9b6906d78087350b1fe2600;hb=6eedf09afdc5140110c8f9ce108eefd2f7c85959;hp=62a9e528bea095da25f927be3955f4bd9000d105;hpb=b5453fbb2a8b2a70d852a8673dcc98f7d51f8bf7;p=dbsrgits%2FDBIx-Class-Historic.git diff --git a/t/746sybase.t b/t/746sybase.t index 62a9e52..91bfb24 100644 --- a/t/746sybase.t +++ b/t/746sybase.t @@ -46,7 +46,7 @@ for my $storage_type (@storage_types) { if ($storage_idx == 0 && $schema->storage->isa('DBIx::Class::Storage::DBI::Sybase::NoBindVars')) { -# no placeholders in this version of Sybase or DBD::Sybase +# no placeholders in this version of Sybase or DBD::Sybase (or using FreeTDS) my $tb = Test::More->builder; $tb->skip('no placeholders') for 1..$TESTS; next; @@ -130,8 +130,8 @@ SQL # mostly stolen from the blob stuff Nniuq wrote for t/73oracle.t SKIP: { - skip 'Need at least version 1.09 of DBD::Sybase to test TEXT/IMAGE', 12 - unless $DBD::Sybase::VERSION >= 1.09; + skip 'TEXT/IMAGE support does not work with FreeTDS', 12 + if $schema->storage->_using_freetds; my $dbh = $schema->storage->dbh; { @@ -155,7 +155,7 @@ SQL my $maxloblen = length $binstr{'large'}; note "Localizing LongReadLen to $maxloblen to avoid truncation of test data"; - local $dbh->{'LongReadLen'} = $maxloblen; + local $dbh->{'LongReadLen'} = $maxloblen * 2; my $rs = $schema->resultset('BindType'); my $last_id; @@ -171,27 +171,13 @@ SQL $last_id = $created->id if $created; my $got = eval { - $rs->search({ id => $last_id }, { select => [$type] })->single->$type + $rs->find($last_id)->$type }; diag $@ if $@; ok($got eq $binstr{$size}, "verified inserted $size $type"); } } - # try a blob update - TODO: { - local $TODO = 'updating TEXT/IMAGE does not work yet'; - - my $new_str = $binstr{large} . 'foo'; - eval { $rs->search({ id => $last_id })->update({ blob => $new_str }) }; - ok !$@, 'updated blob successfully'; - diag $@ if $@; - ok(eval { - $rs->search({ id => $last_id }, { select => ['blob'] })->single->blob - } eq $new_str, "verified updated blob" ); - diag $@ if $@; - } - # blob insert with explicit PK { local $SIG{__WARN__} = sub {}; @@ -208,14 +194,25 @@ SQL ],{ RaiseError => 1, PrintError => 0 }); } my $created = eval { $rs->create( { id => 1, blob => $binstr{large} } ) }; - ok(!$@, "inserted large blob without dying"); + ok(!$@, "inserted large blob without dying with manual PK"); diag $@ if $@; my $got = eval { - $rs->search({ id => 1 }, { select => ['blob'] })->single->blob + $rs->find(1)->blob + }; + diag $@ if $@; + ok($got eq $binstr{large}, "verified inserted large blob with manual PK"); + + # try a blob update + my $new_str = $binstr{large} . 'mtfnpy'; + eval { $rs->search({ id => 1 })->update({ blob => $new_str }) }; + ok !$@, 'updated blob successfully'; + diag $@ if $@; + $got = eval { + $rs->find(1)->blob }; diag $@ if $@; - ok($got eq $binstr{large}, "verified inserted large blob"); + ok($got eq $new_str, "verified updated blob"); } }