Aion-Query

 view release on metacpan or  search on metacpan

t/aion/query.t  view on Meta::CPAN

# 
# ## default_connect_options ()
# 
# DSN, пользователь, пароль и команды после подключения.
# 
done_testing; }; subtest 'default_connect_options ()' => sub { 
::is_deeply scalar do {[default_connect_options]}, scalar do {['DBI:SQLite:dbname=test-base.sqlite', 'root', 123, []]}, '[default_connect_options]  # --> [\'DBI:SQLite:dbname=test-base.sqlite\', \'root\', 123, []]';

# 
# ## base_connect ($dsn, $user, $password, $conn)
# 
# Подключаемся к базе и возвращаем соединение и идентифицируем.
# 
done_testing; }; subtest 'base_connect ($dsn, $user, $password, $conn)' => sub { 
my ($dbh, $connect_id) = base_connect("DBI:SQLite:dbname=base-2.sqlite", "toor", "toorpasswd", []);

::is scalar do {ref $dbh}, "DBI::db", 'ref $dbh     # => DBI::db';
::is scalar do {$connect_id}, scalar do{-1}, '$connect_id  # -> -1';

# 
# ## connect_respavn ($base)
# 
# Проверка подключения и повторное подключение.
# 
done_testing; }; subtest 'connect_respavn ($base)' => sub { 
my $old_base = $Aion::Query::base;

::is scalar do {$old_base->ping}, scalar do{1}, '$old_base->ping  # -> 1';
connect_respavn $Aion::Query::base, $Aion::Query::base_connection_id;

::is scalar do {$old_base}, scalar do{$Aion::Query::base}, '$old_base  # -> $Aion::Query::base';

# 
# ## connect_restart ($base)
# 
# Перезапуск соединения.
# 
done_testing; }; subtest 'connect_restart ($base)' => sub { 
my $connection_id = $Aion::Query::base_connection_id;
my $base = $Aion::Query::base;

connect_restart $Aion::Query::base, $Aion::Query::base_connection_id;

::is scalar do {$base->ping}, scalar do{0}, '$base->ping  # -> 0';
::is scalar do {$Aion::Query::base->ping}, scalar do{1}, '$Aion::Query::base->ping  # -> 1';

# 
# ## query_stop ()
# 
# Создает дополнительное соединение с базой и убивает основное.
# 
# Для этого используется `$Aion::Query::base_connection_id`.
# 
# SQLite работает в том же процессе, поэтому `$Aion::Query::base_connection_id` имеет `-1`. То есть для SQLite этот метод ничего не делает.
# 
done_testing; }; subtest 'query_stop ()' => sub { 
my @x = query_stop;
::is_deeply scalar do {\@x}, scalar do {[]}, '\@x  # --> []';

# 
# ## sql_debug ($fn, $query)
# 
# Сохраняет запросы к базе данных в `@Aion::Query::DEBUG`. Вызывается из `query_do`.
# 
done_testing; }; subtest 'sql_debug ($fn, $query)' => sub { 
sql_debug label => "SELECT 123";

::is scalar do {$Aion::Query::DEBUG[$#Aion::Query::DEBUG]}, "label: SELECT 123", '$Aion::Query::DEBUG[$#Aion::Query::DEBUG]  # => label: SELECT 123';

# 
# # AUTHOR
# 
# Yaroslav O. Kosmina [dart@cpan.org](dart@cpan.org)
# 
# # LICENSE
# 
# âš– **GPLv3**
# 
# # COPYRIGHT
# 
# The Aion::Surf module is copyright © 2023 Yaroslav O. Kosmina. Rusland. All rights reserved.

	done_testing;
};

done_testing;



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