Date: Wednesday, December 7, 2005 @ 11:48:24
  Author: csaba
    Path: /cvsroot/carob/libmysequoia

   Added: test/Globals.hpp (1.1)
Modified: src/MySQLAPI.cpp (1.6 -> 1.7) test/TestMySQLAPI.cpp (1.1 -> 1.2)
          test/TestMySQLAPI.hpp (1.1 -> 1.2)

Added the following test cases:
- void mysql_init_test(void);
- void mysql_real_connect_test(void);
- void mysql_real_connect_negative_test(void);
- void mysql_connect_test(void);
- void mysql_select_db_test(void);


-----------------------+
 src/MySQLAPI.cpp      |    3 +
 test/Globals.hpp      |   13 ++++++
 test/TestMySQLAPI.cpp |   93 +++++++++++++++++++++++++++++++++++++++++++++---
 test/TestMySQLAPI.hpp |   20 ++++++++--
 4 files changed, 122 insertions(+), 7 deletions(-)


Index: libmysequoia/src/MySQLAPI.cpp
diff -u libmysequoia/src/MySQLAPI.cpp:1.6 libmysequoia/src/MySQLAPI.cpp:1.7
--- libmysequoia/src/MySQLAPI.cpp:1.6   Wed Dec  7 11:44:33 2005
+++ libmysequoia/src/MySQLAPI.cpp       Wed Dec  7 11:48:24 2005
@@ -19,6 +19,9 @@
  * Contributor(s): 
  */
 
+#define USE_OLD_FUNCTIONS
+#include <mysql.h>
+
 #include <CarobMySQL.hpp>
 
 #include <Utils.hpp>
Index: libmysequoia/test/Globals.hpp
diff -u /dev/null libmysequoia/test/Globals.hpp:1.1
--- /dev/null   Wed Dec  7 11:48:24 2005
+++ libmysequoia/test/Globals.hpp       Wed Dec  7 11:48:24 2005
@@ -0,0 +1,13 @@
+#ifndef _GLOBALS_HPP
+#define _GLOBALS_HPP
+
+const char *USER = "user";
+const char *BAD_USER = "nonexistent_user_name";
+const char *PASSWD = "userpass";
+const char *BAD_PASSWD = "bad_password";
+const char *HOST = "localhost";
+const char *DB1 = "db1";
+const char *DB2 = "db2";
+const char *BAD_DB = "nonexistent_db_name";
+
+#endif /* _GLOBALS_HPP */
Index: libmysequoia/test/TestMySQLAPI.cpp
diff -u libmysequoia/test/TestMySQLAPI.cpp:1.1 
libmysequoia/test/TestMySQLAPI.cpp:1.2
--- libmysequoia/test/TestMySQLAPI.cpp:1.1      Mon Dec  5 14:03:37 2005
+++ libmysequoia/test/TestMySQLAPI.cpp  Wed Dec  7 11:48:24 2005
@@ -19,21 +19,106 @@
  * Contributor(s): 
  */
 
+#define USE_OLD_FUNCTIONS
+#include <mysql.h>
+
 #include "TestMySQLAPI.hpp"
+#include "Globals.hpp"
 
 CPPUNIT_TEST_SUITE_REGISTRATION (TestMySQLAPI);
 
 void TestMySQLAPI::setUp(void)
 {
-  carobMySQL = new CarobMYSQL();
+  mysql = mysql_init(0);
 }
 
 void TestMySQLAPI::tearDown(void) 
 {
-  delete carobMySQL;
+  mysql_close(mysql);
+}
+
+void TestMySQLAPI::mysql_init_test(void)
+{
+  CPPUNIT_ASSERT(mysql != 0);
+  CPPUNIT_ASSERT(((CMYSQL *)mysql)->carob != 0);
+}
+
+
+void TestMySQLAPI::mysql_real_connect_test(void)
+{
+  // connect specifying every parameter
+  CPPUNIT_ASSERT(mysql_real_connect(mysql, HOST, USER, PASSWD, DB1, 0, 0, 0) 
!= 0);  
+  CPPUNIT_ASSERT(strcmp(HOST, mysql->host) == 0);
+  CPPUNIT_ASSERT(strcmp(USER, mysql->user) == 0);
+  CPPUNIT_ASSERT(strcmp(PASSWD, mysql->passwd) == 0);
+  CPPUNIT_ASSERT(strcmp(DB1, mysql->db) == 0);
+  CPPUNIT_ASSERT(mysql->port != 0);
+
+  // connect without the hostname parameter
+  // implicit localhost
+  CPPUNIT_ASSERT(mysql_real_connect(mysql, "", USER, PASSWD, DB1, 0, 0, 0) != 
0);  
+  CPPUNIT_ASSERT(mysql_real_connect(mysql, 0, USER, PASSWD, DB1, 0, 0, 0) != 
0);  
+}
+
+void TestMySQLAPI::mysql_real_connect_negative_test(void)
+{
+  // connect with bad username
+  CPPUNIT_ASSERT(mysql_real_connect(mysql, HOST, BAD_USER, PASSWD, DB1, 0, 0, 
0) == 0);  
+  // TODO check error message
+
+  // connect with bad password
+  CPPUNIT_ASSERT(mysql_real_connect(mysql, HOST, USER, BAD_PASSWD, DB1, 0, 0, 
0) == 0);  
+  // TODO check error message
+
+  // connect with bad username and bad password
+  CPPUNIT_ASSERT(mysql_real_connect(mysql, HOST, BAD_USER, BAD_PASSWD, DB1, 0, 
0, 0) == 0);
+  // TODO check error message
+}
+
+void TestMySQLAPI::mysql_connect_test(void)
+{
+  // connect specifying every parameter
+  CPPUNIT_ASSERT(mysql_connect(mysql, HOST, USER, PASSWD) != 0);  
+
+  // connect without the hostname parameter
+  // implicit localhost
+  CPPUNIT_ASSERT(mysql_connect(mysql, "", USER, PASSWD) != 0);  
+  CPPUNIT_ASSERT(mysql_connect(mysql, 0, USER, PASSWD) != 0);  
+}
+
+void TestMySQLAPI::mysql_select_db_test(void)
+{
+  // connect to the database - do not specify the DB name
+  CPPUNIT_ASSERT(mysql_real_connect(mysql, HOST, USER, PASSWD, 0, 0, 0, 0) != 
0);
+
+  CPPUNIT_ASSERT(strcmp(HOST, mysql->host) == 0);
+  CPPUNIT_ASSERT(strcmp(USER, mysql->user) == 0);
+  CPPUNIT_ASSERT(strcmp(PASSWD, mysql->passwd) == 0);
+  CPPUNIT_ASSERT(mysql->db == 0);
+  CPPUNIT_ASSERT(mysql->port != 0);
+
+  // select DB1 - the real connection will happen here
+  CPPUNIT_ASSERT(mysql_select_db(mysql, DB1) != 0);
+  CPPUNIT_ASSERT(strcmp(DB1, mysql->db) == 0);
+
+  // select DB2 - reconnect will happen
+  CPPUNIT_ASSERT(mysql_select_db(mysql, DB2) != 0);
+}
+
+void TestMySQLAPI::mysql_select_db_negative_test(void)
+{
+  // connect to the database
+  CPPUNIT_ASSERT(mysql_real_connect(mysql, HOST, USER, PASSWD, DB1, 0, 0, 0) 
!= 0);
+
+  // select a nonexistent DB
+//  CPPUNIT_ASSERT(mysql_select_db(mysql, BAD_DB) == 0);
+}
+
+void TestMySQLAPI::mysql_change_user_test(void)
+{
 }
 
-void TestMySQLAPI::firstTest(void)
+void TestMySQLAPI::mysql_change_user_negative_test(void)
 {
-  CPPUNIT_ASSERT_EQUAL (1 + 1, 2);
 }
+
Index: libmysequoia/test/TestMySQLAPI.hpp
diff -u libmysequoia/test/TestMySQLAPI.hpp:1.1 
libmysequoia/test/TestMySQLAPI.hpp:1.2
--- libmysequoia/test/TestMySQLAPI.hpp:1.1      Mon Dec  5 14:03:37 2005
+++ libmysequoia/test/TestMySQLAPI.hpp  Wed Dec  7 11:48:24 2005
@@ -30,7 +30,14 @@
 class TestMySQLAPI : public CPPUNIT_NS::TestFixture
 {
   CPPUNIT_TEST_SUITE (TestMySQLAPI);
-    CPPUNIT_TEST (firstTest);
+    CPPUNIT_TEST (mysql_init_test);
+    CPPUNIT_TEST (mysql_real_connect_test);
+    CPPUNIT_TEST (mysql_real_connect_negative_test);
+    CPPUNIT_TEST (mysql_connect_test);
+    CPPUNIT_TEST (mysql_select_db_test);
+    CPPUNIT_TEST (mysql_select_db_negative_test);
+    CPPUNIT_TEST (mysql_change_user_test);
+    CPPUNIT_TEST (mysql_change_user_negative_test);
   CPPUNIT_TEST_SUITE_END ();
 
   public:
@@ -38,10 +45,17 @@
   void tearDown (void);
 
   protected:
-  void firstTest (void);
+  void mysql_init_test(void);
+  void mysql_real_connect_test(void);
+  void mysql_real_connect_negative_test(void);
+  void mysql_connect_test(void);
+  void mysql_select_db_test(void);
+  void mysql_select_db_negative_test(void);
+  void mysql_change_user_test(void);
+  void mysql_change_user_negative_test(void);
 
   private:
-  CarobMYSQL *carobMySQL;
+  MYSQL *mysql;
 };
 
 #endif

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

Reply via email to