X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F72pg.t;h=a3239ca74a9367e0810c97a6e36fcfc538b3d29a;hb=820f95186ba7ce4a7323b1db5cacd645fa4d3f20;hp=754a830c21f1fb2e6591c23b2573e24435a2f422;hpb=d6915f449e2d68ac184d6bc616043fd605913757;p=dbsrgits%2FDBIx-Class-Historic.git diff --git a/t/72pg.t b/t/72pg.t index 754a830..a3239ca 100644 --- a/t/72pg.t +++ b/t/72pg.t @@ -5,21 +5,38 @@ use Test::More; use lib qw(t/lib); use DBICTest; +{ + package DBICTest::Schema::Casecheck; + + use strict; + use warnings; + use base 'DBIx::Class'; + + __PACKAGE__->load_components(qw/PK::Auto Core/); + __PACKAGE__->table('casecheck'); + __PACKAGE__->add_columns(qw/id name NAME uc_name/); + __PACKAGE__->column_info_from_storage(1); + __PACKAGE__->set_primary_key('id'); + +} + my ($dsn, $user, $pass) = @ENV{map { "DBICTEST_PG_${_}" } qw/DSN USER PASS/}; #warn "$dsn $user $pass"; plan skip_all => 'Set $ENV{DBICTEST_PG_DSN}, _USER and _PASS to run this test' - . ' (note: creates and drops a table named artist!)' unless ($dsn && $user); + . ' (note: creates and drops tables named artist and casecheck!)' unless ($dsn && $user); -plan tests => 4; +plan tests => 8; -DBICTest::Schema->compose_connection('PgTest' => $dsn, $user, $pass); +DBICTest::Schema->load_classes( 'Casecheck' ); +DBICTest::Schema->compose_namespace('PgTest' => $dsn, $user, $pass); my $dbh = PgTest->schema->storage->dbh; PgTest->schema->source("Artist")->name("testschema.artist"); $dbh->do("CREATE SCHEMA testschema;"); -$dbh->do("CREATE TABLE testschema.artist (artistid serial PRIMARY KEY, name VARCHAR(255), charfield CHAR(10));"); +$dbh->do("CREATE TABLE testschema.artist (artistid serial PRIMARY KEY, name VARCHAR(100), charfield CHAR(10));"); +ok ( $dbh->do('CREATE TABLE testschema.casecheck (id serial PRIMARY KEY, "name" VARCHAR(1), "NAME" VARCHAR(2), "UC_NAME" VARCHAR(3));'), 'Creation of casecheck table'); PgTest::Artist->load_components('PK::Auto'); @@ -40,7 +57,7 @@ my $test_type_info = { 'name' => { 'data_type' => 'character varying', 'is_nullable' => 1, - 'size' => 255, + 'size' => 100, 'default_value' => undef, }, 'charfield' => { @@ -60,6 +77,16 @@ like($artistid_defval, is_deeply($type_info, $test_type_info, 'columns_info_for - column data types'); +my $name_info = PgTest::Casecheck->column_info( 'name' ); +is( $name_info->{size}, 1, "Case sensitive matching info for 'name'" ); + +my $NAME_info = PgTest::Casecheck->column_info( 'NAME' ); +is( $NAME_info->{size}, 2, "Case sensitive matching info for 'NAME'" ); + +my $uc_name_info = PgTest::Casecheck->column_info( 'uc_name' ); +is( $uc_name_info->{size}, 3, "Case insensitive matching info for 'uc_name'" ); + $dbh->do("DROP TABLE testschema.artist;"); +$dbh->do("DROP TABLE testschema.casecheck;"); $dbh->do("DROP SCHEMA testschema;");