6
BEGIN { require "t/utils.pl" }
7
our (@available_drivers);
9
use constant TESTS_PER_DRIVER => 9;
11
my $total = scalar(@available_drivers) * TESTS_PER_DRIVER;
16
foreach my $d ( @available_drivers ) {
18
unless( has_schema( 'TestApp::User', $d ) ) {
19
skip "No schema for '$d' driver", TESTS_PER_DRIVER;
21
unless( should_test( $d ) ) {
22
skip "ENV is not defined for driver '$d'", TESTS_PER_DRIVER;
24
diag("start testing with '$d' handle") if $ENV{TEST_VERBOSE};
26
my $handle = get_handle( $d );
27
connect_handle( $handle );
28
isa_ok($handle->dbh, 'DBI::db');
30
{my $ret = init_schema( 'TestApp::User', $handle );
31
isa_ok($ret,'DBI::st', "Inserted the schema. got a statement handle back" );}
33
my $rec = TestApp::User->new( handle => $handle );
34
isa_ok($rec, 'Jifty::DBI::Record');
36
my ($id) = $rec->create( name => 'Foobar', interests => 'Slacking' );
37
ok($id, "Successfuly created ticket");
39
$rec->load_by_cols( name => 'foobar');
41
local $TODO = "How do we force mysql to be case sensitive?" if ( $d eq 'mysql' || $d eq 'mysqlPP' );
45
$rec->load_by_cols( name => { value => 'foobar', case_sensitive => 0, operator => '=' });
48
$rec->load_by_cols( name => 'Foobar');
51
$rec->load_by_cols( interests => 'slacking');
54
$rec->load_by_cols( interests => 'Slacking');
57
cleanup_schema( 'TestApp', $handle );
58
disconnect_handle( $handle );
62
package TestApp::User;
63
use base qw/Jifty::DBI::Record/;
71
id integer primary key,
82
CREATE TEMPORARY table users (
83
id integer auto_increment primary key,
85
interests varchar(255)
94
CREATE TEMPORARY table users (
95
id serial primary key,
103
use Jifty::DBI::Schema;
105
use Jifty::DBI::Record schema {
106
column name => type is 'varchar', label is 'Name', is case_sensitive;
107
column interests => type is 'varchar';