[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