4
// Author : Sylvain Rochette Langlois
5
// License : Boost Software License (http://www.boost.org/users/license.html)
10
using namespace mariadb;
11
using namespace unittest;
16
test::test(const char* host_name, const char* user_name, const char* password, const char* schema, u32 port, const char* unix_socket)
18
m_account_setup = account::create(host_name, user_name, password, NULL, port, unix_socket);
19
m_account_setup->set_auto_commit(true);
21
m_account_auto_commit = account::create(host_name, user_name, password, schema, port, unix_socket);
22
m_account_auto_commit->set_auto_commit(true);
24
m_account_transaction = account::create(host_name, user_name, password, schema, port, unix_socket);
25
m_account_transaction->set_auto_commit(false);
40
if (!create_test_db())
42
std::cout << "Unable to create test table in schema " << m_account_auto_commit->schema() << "!\n";
48
if (test_date_time() &&
58
std::cout << "test succeed!\n";
62
catch (const std::exception& e)
64
std::cout << e.what() << '\n';
70
bool test::create_test_db()
74
connection_ref con = connection::create(m_account_setup);
75
statement_ref sta = con->create_statement("SELECT 1 FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = ?;");
76
sta->set_string(0, m_account_auto_commit->schema().c_str());
77
result_set_ref rs = sta->query();
81
con->execute(("CREATE DATABASE " + m_account_auto_commit->schema()).c_str());
83
catch (const std::exception& e)
85
std::cout << e.what() << '\n';
89
return execute("DROP TABLE IF EXISTS test; CREATE TABLE test(id INT PRIMARY KEY AUTO_INCREMENT, data TINYBLOB NULL, str VARCHAR(50) NULL, dt DATETIME NULL, t TIME NULL, value INT NULL, deci DECIMAL(8,4) DEFAULT 0.0);");
92
void test::drop_test_db()
94
execute("DROP TABLE IF EXISTS test;");
100
int test::execute(const char* query)
102
auto con = connection::create(m_account_auto_commit);
106
return con->execute(query) || 1;
108
catch (const std::exception& e)
110
std::cout << e.what() << '\n';
4
// Author : Sylvain Rochette Langlois
5
// License : Boost Software License (http://www.boost.org/users/license.html)
10
using namespace mariadb;
11
using namespace unittest;
16
test::test(const char* host_name, const char* user_name, const char* password, const char* schema, u32 port, const char* unix_socket)
18
m_account_setup = account::create(host_name, user_name, password, NULL, port, unix_socket);
19
m_account_setup->set_auto_commit(true);
21
m_account_auto_commit = account::create(host_name, user_name, password, schema, port, unix_socket);
22
m_account_auto_commit->set_auto_commit(true);
24
m_account_transaction = account::create(host_name, user_name, password, schema, port, unix_socket);
25
m_account_transaction->set_auto_commit(false);
40
if (!create_test_db())
42
std::cout << "Unable to create test table in schema " << m_account_auto_commit->schema() << "!\n";
48
if (test_date_time() &&
58
std::cout << "test succeed!\n";
62
catch (const std::exception& e)
64
std::cout << e.what() << '\n';
70
bool test::create_test_db()
74
connection_ref con = connection::create(m_account_setup);
75
statement_ref sta = con->create_statement("SELECT 1 FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = ?;");
76
sta->set_string(0, m_account_auto_commit->schema().c_str());
77
result_set_ref rs = sta->query();
81
con->execute(("CREATE DATABASE " + m_account_auto_commit->schema()).c_str());
83
catch (const std::exception& e)
85
std::cout << e.what() << '\n';
89
return execute("DROP TABLE IF EXISTS test; CREATE TABLE test(id INT PRIMARY KEY AUTO_INCREMENT, data TINYBLOB NULL, str VARCHAR(50) NULL, dt DATETIME NULL, t TIME NULL, value INT NULL, deci DECIMAL(8,4) DEFAULT 0.0);");
92
void test::drop_test_db()
94
execute("DROP TABLE IF EXISTS test;");
100
int test::execute(const char* query)
102
auto con = connection::create(m_account_auto_commit);
106
return con->execute(query) || 1;
108
catch (const std::exception& e)
110
std::cout << e.what() << '\n';