my
(
$dsn
,
$user
,
$pass
) =
@ENV
{
map
{
"DBICTEST_MSSQL_${_}"
}
qw/DSN USER PASS/
};
plan
skip_all
=>
'Set $ENV{DBICTEST_MSSQL_DSN}, _USER and _PASS to run this test'
unless
(
$dsn
);
plan
tests
=> 5;
my
$storage_type
=
'::DBI::MSSQL'
;
$storage_type
=
'::DBI::Sybase::MSSQL'
if
$dsn
=~ /^dbi:Sybase:/;
my
$schema
= DBICTest::Schema->clone;
$schema
->storage_type(
$storage_type
);
$schema
->connection(
$dsn
,
$user
,
$pass
);
my
$dbh
=
$schema
->storage->dbh;
$dbh
->
do
("IF OBJECT_ID(
'artist'
,
'U'
) IS NOT NULL
DROP TABLE artist");
$dbh
->
do
(
"CREATE TABLE artist (artistid INT IDENTITY PRIMARY KEY, name VARCHAR(255));"
);
$dbh
->
do
(
"CREATE TABLE cd (cdid INT IDENTITY PRIMARY KEY, artist INT, title VARCHAR(100), year VARCHAR(100));"
);
$schema
->class(
'Artist'
)->load_components(
'PK::Auto::MSSQL'
);
my
$new
=
$schema
->resultset(
'Artist'
)->create( {
name
=>
'foo'
} );
ok(
$new
->artistid,
"Auto-PK worked"
);
for
(1..6) {
$schema
->resultset(
'Artist'
)->create( {
name
=>
'Artist '
.
$_
} );
}
my
$it
=
$schema
->resultset(
'Artist'
)->search( { },
{
rows
=> 3,
offset
=> 2,
order_by
=>
'artistid'
}
);
my
$cd
=
$schema
->resultset(
'CD'
)->create( {
artist
=> 1,
title
=>
'Does this break things?'
,
year
=> 2007,
} );
ok(
$cd
->id,
'Not treating ? in data as placeholders'
);
is(
$it
->count, 3,
"LIMIT count ok"
);
ok(
$it
->
next
->name,
"iterator->next ok"
);
$it
->
next
;
$it
->
next
;
is(
$it
->
next
,
undef
,
"next past end of resultset ok"
);
END {
$dbh
->
do
(
"IF OBJECT_ID('artist', 'U') IS NOT NULL DROP TABLE artist"
)
if
$dbh
;
$dbh
->
do
(
"IF OBJECT_ID('cd', 'U') IS NOT NULL DROP TABLE cd"
)
if
$dbh
;
}