[Jifty-commit] r5682 - Jifty-DBI/branches/tisql/t/tisql
Jifty commits
jifty-commit at lists.jifty.org
Tue Aug 12 02:32:16 EDT 2008
Author: ruz
Date: Tue Aug 12 02:32:07 2008
New Revision: 5682
Modified:
Jifty-DBI/branches/tisql/t/tisql/basics.t
Log:
* simplify basics.t to use only one table
* add actuall tests
Modified: Jifty-DBI/branches/tisql/t/tisql/basics.t
==============================================================================
--- Jifty-DBI/branches/tisql/t/tisql/basics.t (original)
+++ Jifty-DBI/branches/tisql/t/tisql/basics.t Tue Aug 12 02:32:07 2008
@@ -9,7 +9,7 @@
BEGIN { require "t/utils.pl" }
our (@available_drivers);
-use constant TESTS_PER_DRIVER => 6;
+use constant TESTS_PER_DRIVER => 20;
my $total = scalar(@available_drivers) * TESTS_PER_DRIVER;
plan tests => $total;
@@ -34,23 +34,44 @@
my $count_users = init_data( 'TestApp::User', $handle );
ok( $count_users, "init users data" );
- my $count_groups = init_data( 'TestApp::Group', $handle );
- ok( $count_groups, "init groups data" );
- my $count_us2gs = init_data( 'TestApp::UserToGroup', $handle );
- ok( $count_us2gs, "init users&groups relations data" );
my $clean_obj = TestApp::UserCollection->new( handle => $handle );
my $users_obj = $clean_obj->clone;
is_deeply( $users_obj, $clean_obj, 'after Clone looks the same');
- $users_obj->tisql('.login = "ivan" OR ( .login like "au%" AND .login not like "%n%" )');
- diag $users_obj->build_select_query;
+ $users_obj->tisql->query('.login = "ivan"');
+ is( $users_obj->count, 1, 'correct number');
+ is( $users_obj->first->id, 1, 'correct id');
+ ok( !$users_obj->next, 'no more records');
$users_obj->clean_slate;
- $users_obj->tisql('.gm.grp.name = "Support"');
+ is_deeply( $users_obj, $clean_obj, 'after Clone looks the same');
+
+ $users_obj->tisql->query('.login = "ivan" AND .login = "john"');
+ is( $users_obj->count, 0, 'correct number');
+ ok( !$users_obj->first, 'no records');
+
+ $users_obj->clean_slate;
+ is_deeply( $users_obj, $clean_obj, 'after clean looks good');
+
+ $users_obj->tisql->query('.login = "ivan" OR .login = "john"');
+ is( $users_obj->count, 2, 'correct number');
+ my %has;
+ while (my $r = <$users_obj>) { $has{ $r->id } = 1 };
+ is scalar keys %has, 2, 'correct number';
+ ok $has{1}, 'has ivan';
+ ok $has{2}, 'has john';
$users_obj->clean_slate;
- $users_obj->tisql('from .gm.grp as g1 where g1.name = "Support" or g1.name = "Developers"');
+ is_deeply( $users_obj, $clean_obj, 'after clean looks good');
+
+ $users_obj->tisql->query('.login = "ivan" OR ( .login like "au%" AND .login not like "%n%" )');
+ is( $users_obj->count, 2, 'correct number');
+ %has = ();
+ while (my $r = <$users_obj>) { $has{ $r->id } = 1 };
+ is scalar keys %has, 2, 'correct number';
+ ok $has{1}, 'has ivan';
+ ok $has{4}, 'has aurelia';
cleanup_schema( 'TestApp', $handle );
@@ -67,17 +88,6 @@
id integer primary key,
login varchar(36)
) },
-q{
-CREATE table user_to_groups (
- id integer primary key,
- person integer,
- grp integer
-) },
-q{
-CREATE table groups (
- id integer primary key,
- name varchar(36)
-) },
]
}
@@ -88,17 +98,6 @@
id integer primary key AUTO_INCREMENT,
login varchar(36)
) },
-q{
-CREATE TEMPORARY table user_to_groups (
- id integer primary key AUTO_INCREMENT,
- user_id integer,
- group_id integer
-) },
-q{
-CREATE TEMPORARY table groups (
- id integer primary key AUTO_INCREMENT,
- name varchar(36)
-) },
]
}
@@ -109,17 +108,6 @@
id serial primary key,
login varchar(36)
) },
-q{
-CREATE TEMPORARY table user_to_groups (
- id serial primary key,
- user_id integer,
- group_id integer
-) },
-q{
-CREATE TEMPORARY table groups (
- id serial primary key,
- name varchar(36)
-) },
]
}
@@ -129,26 +117,11 @@
id integer CONSTRAINT users_Key PRIMARY KEY,
login varchar(36)
)",
- "CREATE SEQUENCE user_to_groups_seq",
- "CREATE table user_to_groups (
- id integer CONSTRAINT user_to_groups_Key PRIMARY KEY,
- user_id integer,
- group_id integer
- )",
- "CREATE SEQUENCE groups_seq",
- "CREATE table groups (
- id integer CONSTRAINT groups_Key PRIMARY KEY,
- name varchar(36)
- )",
] }
sub cleanup_schema_oracle { [
"DROP SEQUENCE users_seq",
"DROP table users",
- "DROP SEQUENCE groups_seq",
- "DROP table groups",
- "DROP SEQUENCE user_to_groups_seq",
- "DROP table user_to_groups",
] }
package TestApp::User;
@@ -160,7 +133,6 @@
use Jifty::DBI::Schema;
use Jifty::DBI::Record schema {
column login => type is 'varchar(36)';
- column gm => refers_to TestApp::UserToGroupCollection by 'person', is virtual;
};
}
@@ -193,78 +165,3 @@
}
1;
-
-package TestApp::Group;
-
-use base qw/Jifty::DBI::Record/;
-our $VERSION = '0.01';
-
-BEGIN {
-use Jifty::DBI::Schema;
-use Jifty::DBI::Record schema {
- column name => type is 'varchar(36)';
- column gm => refers_to TestApp::UserToGroupCollection by 'grp';
-};
-}
-
-sub _init {
- my $self = shift;
- $self->table('groups');
- return $self->SUPER::_init( @_ );
-}
-
-sub init_data {
- return (
- [ 'name' ],
-
- [ 'Developers' ],
- [ 'Sales' ],
- [ 'Support' ],
- );
-}
-
-package TestApp::GroupCollection;
-
-use base qw/Jifty::DBI::Collection/;
-our $VERSION = '0.01';
-
-sub _init {
- my $self = shift;
- $self->table('groups');
- return $self->SUPER::_init( @_ );
-}
-
-1;
-
-package TestApp::UserToGroup;
-
-use base qw/Jifty::DBI::Record/;
-our $VERSION = '0.01';
-
-BEGIN {
-use Jifty::DBI::Schema;
-use Jifty::DBI::Record schema {
- column grp => refers_to TestApp::Group;
- column person => refers_to TestApp::User;
-};
-}
-
-sub init_data {
- return (
- [ 'grp', 'person' ],
-# dev group
- [ 1, 1 ],
- [ 1, 2 ],
- [ 1, 4 ],
-# sales
-# [ 2, 0 ],
-# support
- [ 3, 1 ],
- );
-}
-
-package TestApp::UserToGroupCollection;
-use base qw/Jifty::DBI::Collection/;
-our $VERSION = '0.01';
-
-1;
More information about the Jifty-commit
mailing list