X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F745db2.t;h=3ba85794b1e933ba9ed6f500ef18861afe9fec32;hb=587daa97726631a2a5edc95ea6bfe62bf340bd8d;hp=6ddb1cd954db4026c8c0f97c541717ef1a649399;hpb=3ff5b74063e6bb299d8a7443df0e864254ea44b9;p=dbsrgits%2FDBIx-Class.git diff --git a/t/745db2.t b/t/745db2.t index 6ddb1cd..3ba8579 100644 --- a/t/745db2.t +++ b/t/745db2.t @@ -12,37 +12,49 @@ my ($dsn, $user, $pass) = @ENV{map { "DBICTEST_DB2_${_}" } qw/DSN USER PASS/}; plan skip_all => 'Set $ENV{DBICTEST_DB2_DSN}, _USER and _PASS to run this test' unless ($dsn && $user); -plan tests => 6; +plan tests => 9; my $schema = DBICTest::Schema->connect($dsn, $user, $pass); my $dbh = $schema->storage->dbh; -$dbh->do("DROP TABLE artist", { RaiseError => 0, PrintError => 0 }); +eval { $dbh->do("DROP TABLE artist") }; -$dbh->do("CREATE TABLE artist (artistid INTEGER GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), name VARCHAR(255), charfield CHAR(10));"); +$dbh->do("CREATE TABLE artist (artistid INTEGER GENERATED BY DEFAULT AS IDENTITY (START WITH 1, INCREMENT BY 1), name VARCHAR(255), charfield CHAR(10), rank INTEGER DEFAULT 13);"); # This is in core, just testing that it still loads ok $schema->class('Artist')->load_components('PK::Auto'); +my $ars = $schema->resultset('Artist'); + # test primary key handling -my $new = $schema->resultset('Artist')->create({ name => 'foo' }); +my $new = $ars->create({ name => 'foo' }); ok($new->artistid, "Auto-PK worked"); -# test LIMIT support +my $init_count = $ars->count; for (1..6) { - $schema->resultset('Artist')->create({ name => 'Artist ' . $_ }); + $ars->create({ name => 'Artist ' . $_ }); } -my $it = $schema->resultset('Artist')->search( {}, - { rows => 3, - order_by => 'artistid' - } +is ($ars->count, $init_count + 6, 'Simple count works'); + +# test LIMIT support +my $it = $ars->search( {}, + { + rows => 3, + order_by => 'artistid' + } ); is( $it->count, 3, "LIMIT count ok" ); + +my @all = $it->all; +is (@all, 3, 'Number of ->all objects matches count'); + +$it->reset; is( $it->next->name, "foo", "iterator->next ok" ); -$it->next; +is( $it->next->name, "Artist 1", "iterator->next ok" ); is( $it->next->name, "Artist 2", "iterator->next ok" ); -is( $it->next, undef, "next past end of resultset ok" ); +is( $it->next, undef, "next past end of resultset ok" ); # this can not succeed if @all > 3 + my $test_type_info = { 'artistid' => { @@ -60,6 +72,11 @@ my $test_type_info = { 'is_nullable' => 1, 'size' => 10 }, + 'rank' => { + 'data_type' => 'INTEGER', + 'is_nullable' => 1, + 'size' => 10 + }, }; @@ -68,5 +85,6 @@ is_deeply($type_info, $test_type_info, 'columns_info_for - column data types'); # clean up our mess END { + my $dbh = eval { $schema->storage->_dbh }; $dbh->do("DROP TABLE artist") if $dbh; }