use strict;
use warnings;
use File::Basename;
use lib File::Basename::dirname(__FILE__)."/../..";
use URT;
use Test::More tests => 9;
use URT::DataSource::SomeSQLite;
&setup_classes_and_db();
my $thing = URT::Thing->get('value like' => '%One');
ok($thing, "Loaded thing iwth 'value like' => '%One'");
is($thing->id, 1, 'It was the right thing');
my @things = URT::Thing->get('value not like' => '%Two');
is(scalar(@things), 4, "Loaded 4 things with 'value not like' => '%Two'");
@things = URT::Thing->get('value like' => 'Number%');
is(scalar(@things), 5, "Got 5 things with 'value like' => 'Number%'");
@things = URT::Thing->get('value not like' => '%blah%');
is(scalar(@things), 5, "Got 5 things with 'value not like' => '%blah%'");
sub setup_classes_and_db {
my $dbh = URT::DataSource::SomeSQLite->get_default_handle;
ok($dbh, 'Got DB handle');
ok( $dbh->do("create table thing (thing_id integer NOT NULL PRIMARY KEY, value varchar)"),
'created thing table');
my $sth = $dbh->prepare('insert into thing values (?,?)');
ok($sth, 'Prepared insert statement');
$sth->execute(1,'Number One');
$sth->execute(2,'Number Two');
$sth->execute(3,'Number Three');
$sth->execute(4,'Number Four');
$sth->execute(5,'Number Five');
$sth->finish;
ok($dbh->commit(), 'DB commit');
UR::Object::Type->define(
class_name => 'URT::Thing',
id_by => 'thing_id',
has => [
value => { is => 'String' },
],
data_source => 'URT::DataSource::SomeSQLite',
table_name => 'thing',
);
}