DBD-Avatica

 view release on metacpan or  search on metacpan

t/basic.t  view on Meta::CPAN

&mock_common if $is_mock;
my $dbh = DBI->connect("dbi:Avatica:adapter_name=phoenix;url=$url") or BAIL_OUT( DBI->errstr );
my $ret = $dbh->do(q{DROP TABLE IF EXISTS TEST});
is $ret, '0E0', 'check drop res';
$ret = $dbh->do(q{CREATE TABLE TEST(ID BIGINT PRIMARY KEY, TEXT VARCHAR)});
is $ret, '0E0', 'check drop res';

subtest 'prepare & execute without params' => sub {
    if ($is_mock) {
        mock_prepare_seq([
            q!{"statement":{"connectionId":"yylc41tx9whb7d7h996rzq8k7q7cv2","id":87,"signature":{"sql":"UPSERT INTO TEST VALUES (1, 'foo')","cursorFactory":{"style":"LIST"}}},"metadata":{"serverAddress":"c497a18abde6:8765"}}!,
            q!{"statement":{"connectionId":"yylc41tx9whb7d7h996rzq8k7q7cv2","id":89,"signature":{"columns":[{"searchable":true,"signed":true,"displaySize":40,"label":"ID","columnName":"ID","tableName":"TEST","readOnly":true,"columnClassName":"java.la...
        ]);
        mock_execute_seq([
            q!{"results":[{"connectionId":"yylc41tx9whb7d7h996rzq8k7q7cv2","statementId":88,"updateCount":1,"metadata":{"serverAddress":"c497a18abde6:8765"}}],"metadata":{"serverAddress":"c497a18abde6:8765"}}!,
            q!{"results":[{"connectionId":"yylc41tx9whb7d7h996rzq8k7q7cv2","statementId":90,"ownStatement":true,"signature":{"columns":[{"searchable":true,"signed":true,"displaySize":40,"label":"ID","columnName":"ID","tableName":"TEST","readOnly":tru...
        ]);
    }

    my $sth = $dbh->prepare(q{UPSERT INTO TEST VALUES (1, 'foo')});
    isnt $sth, undef, 'sth is defined';

    $ret = $sth->execute;
    is $ret, 1, 'number of inserted rows';

    $sth = $dbh->prepare(q{SELECT * FROM TEST});

t/basic.t  view on Meta::CPAN

    my $row = $sth->fetchrow_arrayref;
    is_deeply $row, [1, 'foo'], 'check row';

    $row = $sth->fetchrow_arrayref;
    is $row, undef, 'no more rows';
};

subtest 'prepare & execute with params' => sub {
    if ($is_mock) {
        mock_prepare_seq([
            q!{"statement":{"connectionId":"pwwfyg3517k0pwn9ce0n3k0jpmbthw","id":8,"signature":{"sql":"UPSERT INTO TEST VALUES (?, ?)","parameters":[{"parameterType":4294967291,"typeName":"BIGINT","className":"java.lang.Long","name":"?1"},{"parameter...
            q!{"statement":{"connectionId":"pwwfyg3517k0pwn9ce0n3k0jpmbthw","id":9,"signature":{"columns":[{"searchable":true,"signed":true,"displaySize":40,"label":"ID","columnName":"ID","tableName":"TEST","readOnly":true,"columnClassName":"java.lan...
        ]);
        mock_execute_seq([
            q!{"results":[{"connectionId":"pwwfyg3517k0pwn9ce0n3k0jpmbthw","statementId":8,"ownStatement":true,"updateCount":1,"metadata":{"serverAddress":"c497a18abde6:8765"}}],"metadata":{"serverAddress":"c497a18abde6:8765"}}!,
            q!{"results":[{"connectionId":"pwwfyg3517k0pwn9ce0n3k0jpmbthw","statementId":9,"ownStatement":true,"signature":{"columns":[{"searchable":true,"signed":true,"displaySize":40,"label":"ID","columnName":"ID","tableName":"TEST","readOnly":true...
        ]);
    }
    my $sth = $dbh->prepare(q{UPSERT INTO TEST VALUES (?, ?)});
    isnt $sth, undef, 'sth is defined';

    $ret = $sth->execute(2, 'bar');
    is $ret, 1, 'number of inserted rows';

    $sth = $dbh->prepare(q{SELECT * FROM TEST WHERE ID = ?});
    isnt $sth, undef, 'sth is defined';

t/basic.t  view on Meta::CPAN

    $ret = $sth->execute(2);
    is $ret, 1, 'execute is successfully';

    my $row = $sth->fetchall_arrayref;
    is_deeply $row, [[2, 'bar']], 'check rows';
};

subtest 'fetch & hash slice result' => sub {
    if ($is_mock) {
        mock_prepare_seq([
            q!{"statement":{"connectionId":"pwwfyg3517k0pwn9ce0n3k0jpmbthw","id":8,"signature":{"sql":"UPSERT INTO TEST VALUES (?, ?)","parameters":[{"parameterType":4294967291,"typeName":"BIGINT","className":"java.lang.Long","name":"?1"},{"parameter...
            q!{"statement":{"connectionId":"pwwfyg3517k0pwn9ce0n3k0jpmbthw","id":9,"signature":{"columns":[{"searchable":true,"signed":true,"displaySize":40,"label":"ID","columnName":"ID","tableName":"TEST","readOnly":true,"columnClassName":"java.lan...
        ]);
        mock_execute_seq([
            q!{"results":[{"connectionId":"pwwfyg3517k0pwn9ce0n3k0jpmbthw","statementId":8,"ownStatement":true,"updateCount":1,"metadata":{"serverAddress":"c497a18abde6:8765"}}],"metadata":{"serverAddress":"c497a18abde6:8765"}}!,
            q!{"results":[{"connectionId":"3c2e0sfi3yt05u9r7f3erd3muhrp3a","statementId":109,"ownStatement":true,"signature":{"columns":[{"searchable":true,"signed":true,"displaySize":40,"label":"ID","columnName":"ID","tableName":"TEST","readOnly":tr...
        ]);
        mock_fetch_seq([
            q!{"frame":{"rows":[{"value":[{"value":[{"type":"LONG","numberValue":2}],"scalarValue":{"type":"LONG","numberValue":2}},{"value":[{"type":"STRING","stringValue":"bar"}],"scalarValue":{"type":"STRING","stringValue":"bar"}}]}]},"metadata":{...
            q!{"frame":{"rows":[{"value":[{"value":[{"type":"LONG","numberValue":3}],"scalarValue":{"type":"LONG","numberValue":3}},{"value":[{"type":"STRING","stringValue":"baz"}],"scalarValue":{"type":"STRING","stringValue":"baz"}}]}]},"metadata":{...
            q!{"frame":{"done":true},"metadata":{"serverAddress":"c497a18abde6:8765"}}!
        ]);
    }
    my $ret = $dbh->do(q{UPSERT INTO TEST VALUES (?, ?)}, undef, 3, 'baz');
    is $ret, 1, 'check upsert';

t/lib/Mock.pm  view on Meta::CPAN

}

sub mock_connect {
    mock_call('open_connection', 'OpenConnectionResponse', '{"metadata":{"serverAddress":"c497a18abde6:8765"}}');
    mock_call('connection_sync', 'ConnectionSyncResponse', '{"connProps":{"autoCommit":true,"transactionIsolation":2,"hasAutoCommit":true,"hasReadOnly":true},"metadata":{"serverAddress":"c497a18abde6:8765"}}');
    mock_call('database_property', 'DatabasePropertyResponse', '{"props":[{"key":{"name":"GET_DATABASE_MAJOR_VERSION"},"value":{"type":"INTEGER","numberValue":4}},{"key":{"name":"GET_DEFAULT_TRANSACTION_ISOLATION"},"value":{"type":"INTEGER","numberVa...
}

sub mock_create_table {
    mock_prepare_seq([
        '{"statement":{"connectionId":"35p0fchr4g6az0wwy8l541zl0ys2yh","id":79,"signature":{"sql":"DROP TABLE IF EXISTS TEST","cursorFactory":{"style":"LIST"}}},"metadata":{"serverAddress":"c497a18abde6:8765"}}',
        '{"statement":{"connectionId":"35p0fchr4g6az0wwy8l541zl0ys2yh","id":81,"signature":{"sql":"CREATE TABLE TEST(ID BIGINT PRIMARY KEY, TEXT VARCHAR)","cursorFactory":{"style":"LIST"}}},"metadata":{"serverAddress":"c497a18abde6:8765"}}'
    ]);
    mock_execute_seq([
        '{"results":[{"connectionId":"35p0fchr4g6az0wwy8l541zl0ys2yh","statementId":80,"metadata":{"serverAddress":"c497a18abde6:8765"}}],"metadata":{"serverAddress":"c497a18abde6:8765"}}',
        '{"results":[{"connectionId":"35p0fchr4g6az0wwy8l541zl0ys2yh","statementId":82,"metadata":{"serverAddress":"c497a18abde6:8765"}}],"metadata":{"serverAddress":"c497a18abde6:8765"}}'
    ]);
}

sub mock_prepare_seq {
    my $list = shift;
    mock_call_seq('prepare', 'PrepareResponse', $list);



( run in 0.294 second using v1.01-cache-2.11-cpan-4d50c553e7e )