Date: Friday, January 13, 2006 @ 15:01:10
  Author: zsolt
    Path: /cvsroot/carob/libmysequoia/test

Modified: TestMySQLAPI.cpp (1.19 -> 1.20) TestMySQLAPI.hpp (1.8 -> 1.9)

Implemented TestMySQLAPI::mysql_stmt_select_fetch_test() and 
TestMySQLAPI::mysql_stmt_store_fetch_test() to test the prepared statement 
fetch and store futures.


------------------+
 TestMySQLAPI.cpp |   88 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 TestMySQLAPI.hpp |    4 ++
 2 files changed, 92 insertions(+)


Index: libmysequoia/test/TestMySQLAPI.cpp
diff -u libmysequoia/test/TestMySQLAPI.cpp:1.19 
libmysequoia/test/TestMySQLAPI.cpp:1.20
--- libmysequoia/test/TestMySQLAPI.cpp:1.19     Wed Jan 11 12:55:33 2006
+++ libmysequoia/test/TestMySQLAPI.cpp  Fri Jan 13 15:01:10 2006
@@ -363,3 +363,91 @@
 
   CPPUNIT_ASSERT(mysql_stmt_close(stmt) == 0); 
 }
+
+void TestMySQLAPI::mysql_stmt_select_fetch_test(void)
+{
+  MYSQL_STMT *stmt;
+  MYSQL_BIND inbind[1];
+  MYSQL_BIND outbind[1];
+  int int_data;
+  char *query = "select * from t1 where a <= ?";
+
+  CPPUNIT_ASSERT(mysql_real_connect(mysql, HOST, USER1, PASSWD1, DB1, 0, 0, 0) 
!= 0);
+  CPPUNIT_ASSERT((stmt = mysql_stmt_init(mysql)) != 0);
+  CPPUNIT_ASSERT(mysql_stmt_prepare(stmt, query, strlen(query)) == 0);
+  CPPUNIT_ASSERT(mysql_stmt_param_count(stmt) == 1);
+  
+  memset(inbind, 0, sizeof(inbind));
+  inbind[0].buffer_type= MYSQL_TYPE_LONG;
+  inbind[0].buffer= (char *)&int_data;
+  inbind[0].is_null= 0;
+  inbind[0].length= 0;
+  CPPUNIT_ASSERT(mysql_stmt_bind_param(stmt, inbind) == 0);
+  
+  int_data = 3;
+  CPPUNIT_ASSERT(mysql_stmt_execute(stmt) == 0);
+  CPPUNIT_ASSERT(mysql_stmt_field_count(stmt) == 2);
+
+  int int_res;
+  my_bool isnull;
+  
+  memset(outbind, 0, sizeof(inbind));
+  outbind[0].buffer_type= MYSQL_TYPE_LONG;
+  outbind[0].buffer= (char *)&int_res;
+  outbind[0].is_null= &isnull;
+  CPPUNIT_ASSERT(mysql_stmt_bind_result(stmt, outbind) == 0);
+
+  int count = 1;
+  while (mysql_stmt_fetch(stmt) == 0)
+    CPPUNIT_ASSERT(count++ == int_res);
+
+  CPPUNIT_ASSERT(mysql_stmt_num_rows(stmt) == 3);
+  CPPUNIT_ASSERT(mysql_stmt_affected_rows(stmt) == 3);
+
+  CPPUNIT_ASSERT(mysql_stmt_close(stmt) == 0); 
+}
+
+void TestMySQLAPI::mysql_stmt_store_fetch_test(void)
+{
+  MYSQL_STMT *stmt;
+  MYSQL_BIND inbind[1];
+  MYSQL_BIND outbind[1];
+  int int_data;
+  char *query = "select * from t1 where a <= ?";
+
+  CPPUNIT_ASSERT(mysql_real_connect(mysql, HOST, USER1, PASSWD1, DB1, 0, 0, 0) 
!= 0);
+  CPPUNIT_ASSERT((stmt = mysql_stmt_init(mysql)) != 0);
+  CPPUNIT_ASSERT(mysql_stmt_prepare(stmt, query, strlen(query)) == 0);
+  CPPUNIT_ASSERT(mysql_stmt_param_count(stmt) == 1);
+  
+  memset(inbind, 0, sizeof(inbind));
+  inbind[0].buffer_type= MYSQL_TYPE_LONG;
+  inbind[0].buffer= (char *)&int_data;
+  inbind[0].is_null= 0;
+  inbind[0].length= 0;
+  CPPUNIT_ASSERT(mysql_stmt_bind_param(stmt, inbind) == 0);
+  
+  int_data = 3;
+  CPPUNIT_ASSERT(mysql_stmt_execute(stmt) == 0);
+  CPPUNIT_ASSERT(mysql_stmt_field_count(stmt) == 2);
+
+  int int_res;
+  my_bool isnull;
+  
+  memset(outbind, 0, sizeof(inbind));
+  outbind[0].buffer_type= MYSQL_TYPE_LONG;
+  outbind[0].buffer= (char *)&int_res;
+  outbind[0].is_null= &isnull;
+  CPPUNIT_ASSERT(mysql_stmt_bind_result(stmt, outbind) == 0);
+  CPPUNIT_ASSERT(mysql_stmt_store_result(stmt) == 0);
+  CPPUNIT_ASSERT(mysql_stmt_num_rows(stmt) == 3);
+  CPPUNIT_ASSERT(mysql_stmt_affected_rows(stmt) == 3);
+  
+  int count = 1;
+  while (mysql_stmt_fetch(stmt) == 0)
+    CPPUNIT_ASSERT(count++ == int_res);
+
+  CPPUNIT_ASSERT(mysql_stmt_free_result(stmt) == 0); 
+
+  CPPUNIT_ASSERT(mysql_stmt_close(stmt) == 0); 
+}
Index: libmysequoia/test/TestMySQLAPI.hpp
diff -u libmysequoia/test/TestMySQLAPI.hpp:1.8 
libmysequoia/test/TestMySQLAPI.hpp:1.9
--- libmysequoia/test/TestMySQLAPI.hpp:1.8      Wed Jan 11 12:55:33 2006
+++ libmysequoia/test/TestMySQLAPI.hpp  Fri Jan 13 15:01:10 2006
@@ -51,6 +51,8 @@
     CPPUNIT_TEST (mysql_stmt_init_close_test);
     CPPUNIT_TEST (mysql_stmt_attr_get_set_test);
     CPPUNIT_TEST (mysql_stmt_prepare_bind_exec_test);
+    CPPUNIT_TEST (mysql_stmt_select_fetch_test);
+    CPPUNIT_TEST (mysql_stmt_store_fetch_test);
   CPPUNIT_TEST_SUITE_END ();
 
 public:
@@ -79,6 +81,8 @@
   void mysql_stmt_init_close_test(void);
   void mysql_stmt_attr_get_set_test(void);
   void mysql_stmt_prepare_bind_exec_test(void);
+  void mysql_stmt_select_fetch_test(void);
+  void mysql_stmt_store_fetch_test(void);
 private:
   MYSQL *mysql;
 };

_______________________________________________
Carob-commits mailing list
[email protected]
https://forge.continuent.org/mailman/listinfo/carob-commits

Reply via email to