DBD-Avatica
view release on metacpan or search on metacpan
&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});
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';
$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 )