1 module mysql.mysql_test; 2 3 import std.stdio; 4 import dunit.toolkit; 5 6 import mysql.mysql; 7 import mysql.test_helper; 8 9 // CHECK MYSQL CLIENT VERSION 10 unittest { 11 if (Mysql.clientVersion < 50100) { 12 writeln("Your mysqlclient version is ", Mysql.clientVersionString, ". Better use version >= 5.1"); 13 } 14 assert(Mysql.clientVersion > 50100); 15 } 16 17 // Mysql.dbname 18 unittest { 19 auto mysql = test_mysql_db_connection(); 20 assert(mysql.dbname == mysql.queryOneRow("SELECT DATABASE() as current_db;")["current_db"]); 21 } 22 23 // MYSQL PING 24 unittest { 25 auto mysql = test_mysql_db_connection; 26 assert(mysql.ping == 0); 27 } 28 29 // MAKE CONNECTION, CHANGE DB 30 unittest { 31 auto mysql = test_mysql_db_connection(); 32 33 // drop database if exists 34 mysql.query("DROP DATABASE IF EXISTS " ~ test_mysql_db); 35 // create database 36 mysql.query("CREATE DATABASE " ~ test_mysql_db); 37 38 // check current database 39 assertEqual(mysql.queryOneRow("SELECT DATABASE() as dbname;")["dbname"], "mysql"); 40 41 // change database 42 mysql.selectDb(test_mysql_db); 43 44 // check, it should be changed 45 assertEqual(mysql.queryOneRow("SELECT DATABASE() as dbname;")["dbname"], test_mysql_db); 46 } 47 48 // ESCAPE STRING 49 unittest { 50 auto mysql = new Mysql(test_mysql_host, test_mysql_user, test_mysql_password, test_mysql_db); 51 assertEqual(mysql.escape("string \"with\" quotes"), "string \\\"with\\\" quotes"); 52 } 53 54 // MYSQL STAT 55 unittest { 56 auto mysql = new Mysql(test_mysql_host, test_mysql_user, test_mysql_password, test_mysql_db); 57 mysql.stat.assertStartsWith("Uptime: "); 58 } 59 60 // MYSQL CLOSE 61 unittest { 62 auto mysql = new Mysql(test_mysql_host, test_mysql_user, test_mysql_password, "mysql_d_testing"); 63 mysql.close(); 64 } 65 66 // MYSQL OPTIONS 67 unittest { 68 auto mysql = new Mysql(); 69 // if we comment this line then server will fall with errro 70 // MySQL server has gone away :::: SHOW VARIABLES WHERE `variable_name` = 'pseudo_thread_id'; 71 mysql.setReconnect(true); 72 mysql.connect(test_mysql_host, 0, test_mysql_user, test_mysql_password, test_mysql_db); 73 74 auto res = mysql.query("SHOW VARIABLES WHERE `variable_name` = 'pseudo_thread_id';"); 75 76 auto mysq2 = new Mysql(test_mysql_host, test_mysql_user, test_mysql_password, test_mysql_db); 77 mysq2.query("kill ?", res.front["Value"]); 78 79 auto res2 = mysql.query("SHOW VARIABLES WHERE `variable_name` = 'pseudo_thread_id';"); 80 assertEqual(res.front["Value"], res.front["Value"]); 81 }