// SqlTable_t.cxx #include #include #include "dataset_sql/SqlTable.h" using std::string; using std::cout; using std::endl; using dset::SqlTable; // Display messsage. void msg(string txt) { cout << "--- " << txt << " ---" << endl; } int ncreate = 0; int ncallback = 0; SqlTable* create(string name, string params) { ++ncreate; cout << "...creating" << endl; assert( name == "junk" ); assert( params == "test" ); return 0; } void callback(string name) { cout << "...callback" << endl; assert( name == "junk" ); ++ncallback; } int SqlTable_t() { msg("Begin Testing SqlTable"); msg("This is an Abstract class"); msg("Test is included in MysqlTable in dataset/dataset_mysqlpp package"); msg("Test registration and callback"); assert( ! SqlTable::has_creator("junk") ); SqlTable::create("junk", "test"); assert( ncreate == 0 ); assert( ncallback == 0 ); assert( SqlTable::register_creator_callback(callback) == 0 ); assert( SqlTable::register_creator("junk", create) == 0 ); assert( ncreate == 0 ); assert( ncallback == 1 ); SqlTable::create("junk", "test"); assert( ncreate == 1 ); assert( ncallback == 1 ); SqlTable::create("junk", "test"); assert( ncreate == 2 ); assert( ncallback == 1 ); return 0; } #ifdef CTEST_MAIN int main() { return SqlTable_t(); } #endif