Shovelling PK::Auto stuff where it belongs..
[dbsrgits/DBIx-Class.git] / t / run / 14mssql.tl
1 sub run_tests {
2 my $schema = shift;\r
3 \r
4 my ($dsn, $user, $pass) = @ENV{map { "DBICTEST_MSSQL_${_}" } qw/DSN USER PASS/};\r
5 \r
6 #warn "$dsn $user $pass";\r
7 \r
8 plan skip_all, 'Set $ENV{DBICTEST_MSSQL_DSN}, _USER and _PASS to run this test'\r
9   unless ($dsn);\r
10 \r
11 plan tests => 4;\r
12 \r
13 $schema->resultset("Schema")->compose_connection( 'MSSQLTest' => $dsn, $user, $pass );\r
14 \r
15 my $dbh = MSSQLTest->schema->storage->dbh;\r
16 \r
17 $dbh->do("IF OBJECT_ID('artist', 'U') IS NOT NULL\r
18     DROP TABLE artist");\r
19 \r
20 $dbh->do("CREATE TABLE artist (artistid INT IDENTITY PRIMARY KEY, name VARCHAR(255));");\r
21 \r
22 MSSQLTest::Artist->load_components('PK::Auto');\r
23 \r
24 # Test PK\r
25 my $new = MSSQLTest::Artist->create( { name => 'foo' } );\r
26 ok($new->artistid, "Auto-PK worked");\r
27 \r
28 # Test LIMIT\r
29 for (1..6) {\r
30     MSSQLTest::Artist->create( { name => 'Artist ' . $_ } );\r
31 }\r
32 \r
33 my $it = MSSQLTest::Artist->search( { },\r
34     { rows     => 3,\r
35       offset   => 2,\r
36       order_by => 'artistid'\r
37     }\r
38 );\r
39 \r
40 is( $it->count, 3, "LIMIT count ok" );\r
41 is( $it->next->name, "Artist 2", "iterator->next ok" );\r
42 $it->next;\r
43 $it->next;\r
44 is( $it->next, undef, "next past end of resultset ok" );\r
45 \r
46 }\r
47 \r
48 1;\r