File: insert.t

package info (click to toggle)
libsql-tiny-perl 0.04-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid, trixie
  • size: 108 kB
  • sloc: perl: 392; makefile: 2
file content (46 lines) | stat: -rw-r--r-- 1,049 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#!/usr/bin/perl

use warnings;
use strict;
use 5.010;

use Test::More tests => 1;

use SQL::Tiny ':all';

test_insert(
    'users',
    {
        serialno   => '12345',
        name       => 'Dave',
        rank       => 'Sergeant',
        height     => undef,
        date_added => \'SYSDATE()',
        startdate  => \[ "to_date(?,'MM/DD/YYYY')", '03/02/2003' ],
    },

    "INSERT INTO users (date_added,height,name,rank,serialno,startdate) VALUES (SYSDATE(),NULL,?,?,?,to_date(?,'MM/DD/YYYY'))",
    [ 'Dave', 'Sergeant', 12345, '03/02/2003' ]
);


done_testing();

exit 0;

sub test_insert {
    local $Test::Builder::Level = $Test::Builder::Level + 1;

    my $table          = shift;
    my $values         = shift;
    my $expected_sql   = shift;
    my $expected_binds = shift;

    return subtest "Expecting: $expected_sql" => sub {
        plan tests => 2;

        my ($sql,$binds) = sql_insert( $table, $values );
        is( $sql, $expected_sql, 'SQL matches' );
        is_deeply( $binds, $expected_binds, 'Binds match' );
    };
}