#!/usr/bin/perl use Test; use strict; use DBIx::SQLEngine; # DBIx::SQLEngine->DBILogging(1); ######################################################################## BEGIN { require 'test_drivers/get_test_dsn.pl' } BEGIN { plan tests => 8 } ######################################################################## ok( $sqldb ); ######################################################################## my $table = 'sqle_test'; FETCH_COLUMN_INFO_1: { if ( $sqldb =~ /AnyData/ ) { skip("Skipping: AnyData incorrectly caches columns before table exists.",0); } else { my @cols = $sqldb->detect_table( $table, 'quietly' ); ok( scalar( @cols ) == 0 ); } } CREATE_TABLE: { unless ( $sqldb =~ /AnyData/ ) { $sqldb->do_drop_table( $table ) if $sqldb->detect_table($table, 'quietly'); } $sqldb->do_create_table( $table, [ { name => 'id', type => 'sequential' }, { name => 'name', type => 'text', length => 16 }, { name => 'color', type => 'text', length => 8 }, ]); ok( 1 ); } FETCH_COLUMN_INFO_EXISTS: { # warn "detect"; my @cols = $sqldb->detect_table( $table ); # warn "cols $#cols"; ok( scalar( @cols ) == 3 ); } FETCH_COLUMN_INFO_WITHROW: { $sqldb->do_insert( table => $table, sequence => 'id', values => { name=>'Sam', color=>'green' } ); # warn "detect"; my @cols = $sqldb->detect_table( $table ); # warn "cols $#cols"; ok( scalar( @cols ) == 3 ); } FETCH_COLUMN_NONEXISTANT: { # warn "detect 51"; my @cols = $sqldb->detect_table( 'area_51_secrets', 'quietly' ); # warn "cols $#cols"; ok( scalar( @cols ) == 0 ); # warn "done"; } DROP_TABLE: { $sqldb->do_drop_table( $table ); ok( 1 ); } FETCH_COLUMN_INFO_DROPPED: { my @cols = $sqldb->detect_table( $table, 'quietly' ); # warn "Columns: " . join(', ', map "'$_'", @cols ); if ( $sqldb =~ /AnyData/ ) { skip("Skipping: AnyData incorrectly caches columns before table exists.",0); } else { my @cols = $sqldb->detect_table( $table, 'quietly' ); ok( scalar( @cols ) == 0 ); } } ######################################################################## 1;