1 module mysql.mysql_query_interface_test; 2 3 import std.stdio; 4 import dunit.toolkit; 5 6 import mysql.mysql; 7 import mysql.query_interface; 8 import mysql.test_helper; 9 10 11 // case with `?` 12 unittest { 13 auto mysql = testing_db_init(); 14 string table_name = "windows"; 15 mysql.query("CREATE TABLE `?` (id INT);", table_name); 16 mysql.query("DROP TABLE `?`", table_name); 17 18 assertEqual(mysql.listTables, []); 19 } 20 21 // case with long 22 unittest { 23 long num = 5; 24 auto query = QueryInterface.makeQuery(new Mysql, "select 1 + ? as ss", num); 25 assertEqual(query, "select 1 + '5' as ss"); 26 } 27 28 29 // case with int 30 unittest { 31 int num = 5; 32 auto query = QueryInterface.makeQuery(new Mysql, "select 1 + ? as ss", num); 33 assertEqual(query, "select 1 + '5' as ss"); 34 } 35 36 37 // case with ubyte 38 unittest { 39 ubyte num = 0x05; 40 auto query = QueryInterface.makeQuery(new Mysql, "select 1 + ? as ss", num); 41 assertEqual(query, "select 1 + '5' as ss"); 42 } 43 44 45 // case with byte 46 unittest { 47 byte num = 0x05; 48 auto query = QueryInterface.makeQuery(new Mysql, "select 1 + ? as ss", num); 49 assertEqual(query, "select 1 + '5' as ss"); 50 } 51 52 53 // case with short 54 unittest { 55 short num = 5; 56 auto query = QueryInterface.makeQuery(new Mysql, "select 1 + ? as ss", num); 57 assertEqual(query, "select 1 + '5' as ss"); 58 } 59 60 // case with ushort 61 unittest { 62 ushort num = 5; 63 auto query = QueryInterface.makeQuery(new Mysql, "select 1 + ? as ss", num); 64 assertEqual(query, "select 1 + '5' as ss"); 65 } 66 67 // case with float 68 unittest { 69 float num = 5.5; 70 auto query = QueryInterface.makeQuery(new Mysql, "select 1 + ? as ss", num); 71 assertEqual(query, "select 1 + '5.5' as ss"); 72 } 73 74 // case with double 75 unittest { 76 double num = 5.5; 77 auto query = QueryInterface.makeQuery(new Mysql, "select 1 + ? as ss", num); 78 assertEqual(query, "select 1 + '5.5' as ss"); 79 } 80 81 // case with real 82 unittest { 83 real num = 5.5; 84 auto query = QueryInterface.makeQuery(new Mysql, "select 1 + ? as ss", num); 85 assertEqual(query, "select 1 + '5.5' as ss"); 86 } 87 88 // case with array 89 unittest { 90 int[4] values = [0, 1, 2, 3]; 91 auto query = QueryInterface.makeQuery(new Mysql, "select 1 in (?) as ss", values); 92 assertEqual(query, "select 1 in (0, 1, 2, 3) as ss"); 93 } 94 95 // case with array int[] 96 unittest { 97 int[4] values = [0, 1, 2, 3]; 98 auto query = QueryInterface.makeQuery(new Mysql, "select 1 in (?) as ss", values); 99 assertEqual(query, "select 1 in (0, 1, 2, 3) as ss"); 100 } 101 102 // case with array float[] 103 unittest { 104 float[4] values = [0, 1.5, 2, 3]; 105 auto query = QueryInterface.makeQuery(new Mysql, "select 1 in (?) as ss", values); 106 assertEqual(query, "select 1 in (0, 1.5, 2, 3) as ss"); 107 } 108 109 // case with array string[] 110 unittest { 111 string[3] values = ["apple", "banana", "mangoostene"]; 112 auto query = QueryInterface.makeQuery(new Mysql, "select 1 in (?) as ss", values); 113 assertEqual(query, "select 1 in ('apple', 'banana', 'mangoostene') as ss"); 114 }