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