DBD-Firebird

 view release on metacpan or  search on metacpan

t/96-boolean.t  view on Meta::CPAN


my $def =<<"DEF";
CREATE TABLE $table (
    a_boolean BOOLEAN
)
DEF
ok( $dbh->do($def), qq{CREATE TABLE '$table'} );

#
#   Insert some values
#

my $stmt =<<"END_OF_QUERY";
INSERT INTO $table (
    a_boolean
) VALUES (?)
END_OF_QUERY

ok(my $insert = $dbh->prepare($stmt), 'PREPARE INSERT');

# Insert positive number
ok($insert->execute(1),
   'INSERT 1 BOOLEAN VALUE'
);

# Insert undef
ok($insert->execute(undef),
   'INSERT NULL BOOLEAN VALUE'
);

# Insert zero number
ok($insert->execute(0),
   'INSERT ZERO BOOLEAN VALUE'
);

# Insert a number greater than 1 (should still be "true")
ok($insert->execute(2),
   'INSERT "2" BOOLEAN VALUE'
);

# Insert negative number (should still be "true")
ok($insert->execute(-1),
   'INSERT -1 BOOLEAN VALUE'
);

# Insert another negative number (should still be "true")
ok($insert->execute(-2),
   'INSERT -2 BOOLEAN VALUE'
);

# Insert positive number
ok($insert->execute(1),
   'INSERT 1 BOOLEAN VALUE (AGAIN)'
);



#
#   Select the values
#
ok( my $cursor = $dbh->prepare( qq{SELECT * FROM $table}, ), 'PREPARE SELECT' );

ok($cursor->execute, 'EXECUTE SELECT');

ok((my $res = $cursor->fetchall_arrayref), 'FETCHALL arrayref');

my ($types, $names, $fields) = @{$cursor}{qw(TYPE NAME NUM_OF_FIELDS)};

for (my $i = 0; $i < @$res; $i++) {
    for (my $j = 0; $j < $fields; $j++) {
        my $result = $res->[$i][$j];
        my $corect = $expected->{$names->[$j]}{test}{$i};
        if (defined($corect)) {
            ok(
                !($result xor $corect),
                "Test $i, Field: $names->[$j], value '$res' matches expected '$corect'"
            );
        }
        else {
            is($result, $corect, "Test $i, Field: $names->[$j]");
        }
    }
}

#
#  Drop the test table
#
$dbh->{AutoCommit} = 1;

ok( $dbh->do("DROP TABLE $table"), "DROP TABLE '$table'" );

#
#   Finally disconnect.
#
ok($dbh->disconnect, 'DISCONNECT');



( run in 0.746 second using v1.01-cache-2.11-cpan-39bf76dae61 )