void databaseDelete(struct connection *conn,int id){ struct address addr = {.id=id,.set=0}; conn->db->rows[id] = addr; } void databaseList(struct connection *conn){ for(int i=0;i<MAX_ROWS;i++){ struct address *addp = conn->db->rows[i]; if(addp->set) addressPrint(addp); } } int main(int argc,char * argv[]) { if(argc<3) die("use it right dumass :/ <exec> <dbfile> <action> [action parameters]"); char *filename = argv[1]; char *action = argv[2][0]; struct connection *conn = databaseOpen(filename,action); if(argc>3) int id = atoi(argv[3]);if(id>MAX_ROWS) die("limit the rowcount dammit"); switch(action){ case 'c':databaseCreate(conn); databasewrite(conn); break; case 'g':if(argc<4) die("you forgot the id moron."); databaseGet(conn,id);break; case 's':if(argc<6) die("can't add a jhon doe. try to remember next time."); databaseSet(conn,id,argv[4],argv[5]); databaseWrite(conn); break; case 'd':if(argc<4) die("for the love of god..delete WHAT?"); databaseDelete(conn,id); databaseWrite(conn); break; case 'l':databaseList(conn);break; default: die("choose from the following cause i aint taking nothing else.\n c-create\ng-get\ns-set\nd-delete\nl-list"); } databaseClose(conn); return 0; }
void testOdbcExecute() { OdbcHandle handle = NULL; CPPUNIT_ASSERT((handle=odbcConnect(DATABASE_NAME, "localhost", POSTGRESQL_USER, "{PostgreSQL}"))!=NULL); if (handle) { databaseWrite(handle); CPPUNIT_ASSERT(odbcDisconnect(handle)); } }
void testOdbcValidateObserverData() { OdbcHandle handle = NULL; char sqlStatement[256]; CPPUNIT_ASSERT((handle=odbcConnect(DATABASE_NAME, "localhost", POSTGRESQL_USER, "{PostgreSQL}"))!=NULL); if (handle) { databaseWrite(handle); int cols; // Get data from call_state_observer_events sprintf(sqlStatement, "SELECT * FROM observer_state_events;"); CPPUNIT_ASSERT(odbcExecute(handle, sqlStatement)); CPPUNIT_ASSERT((cols=odbcResultColumns(handle)) == 6); CPPUNIT_ASSERT(odbcGetNextRow(handle)); char buffer[256]; CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 2, buffer, 256)); CPPUNIT_ASSERT(strcmp(buffer, "10.1.20.3:5060") == 0); CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 3, buffer, 256)); CPPUNIT_ASSERT(strcmp(buffer, "0") == 0); CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 4, buffer, 256)); // When returning a timestamp as string data the fractional component // is truncated - this is expected behavior CPPUNIT_ASSERT(strcmp(buffer, "2006-03-10 12:59:00") == 0); CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 5, buffer, 256)); CPPUNIT_ASSERT(strcmp(buffer, "101") == 0); CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 6, buffer, 256)); CPPUNIT_ASSERT(strcmp(buffer, "AuthProxyCseObserver") == 0); CPPUNIT_ASSERT(odbcDisconnect(handle)); } }
void testOdbcValidateEventData() { OdbcHandle handle = NULL; char sqlStatement[256]; CPPUNIT_ASSERT((handle=odbcConnect(DATABASE_NAME, "localhost", POSTGRESQL_USER, "{PostgreSQL}"))!=NULL); if (handle) { databaseWrite(handle); int cols; // Get data from call_state_events sprintf(sqlStatement, "SELECT * FROM call_state_events;"); CPPUNIT_ASSERT(odbcExecute(handle, sqlStatement)); CPPUNIT_ASSERT((cols=odbcResultColumns(handle)) == 17); CPPUNIT_ASSERT(odbcGetNextRow(handle)); char buffer[256]; // First record CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 2, buffer, 256)); CPPUNIT_ASSERT(strcmp(buffer, "10.1.20.3:5060") == 0); CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 3, buffer, 256)); CPPUNIT_ASSERT(strcmp(buffer, "1") == 0); CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 4, buffer, 256)); // When returning a timestamp as string data the fractional component // is truncated - this is expected behavior CPPUNIT_ASSERT(strcmp(buffer, "2006-03-10 13:00:00") == 0); CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 5, buffer, 256)); CPPUNIT_ASSERT(strcmp(buffer, "R") == 0); CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 7, buffer, 256)); CPPUNIT_ASSERT(strcmp(buffer, "call-111111") == 0); CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 8, buffer, 256)); CPPUNIT_ASSERT(strcmp(buffer, "12345") == 0); CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 9, buffer, 256)); CPPUNIT_ASSERT(strcmp(buffer, "67890") == 0); CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 10, buffer, 256)); CPPUNIT_ASSERT(strcmp(buffer, "sip:[email protected]") == 0); CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 11, buffer, 256)); CPPUNIT_ASSERT(strcmp(buffer, "sip:[email protected]") == 0); CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 12, buffer, 256)); CPPUNIT_ASSERT(strcmp(buffer, "10.1.1.71") == 0); CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 13, buffer, 256)); CPPUNIT_ASSERT(strcmp(buffer, "refer-to") == 0); CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 14, buffer, 256)); CPPUNIT_ASSERT(strcmp(buffer, "referred-by") == 0); CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 15, buffer, 256)); CPPUNIT_ASSERT(strcmp(buffer, "0") == 0); CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 16, buffer, 256)); CPPUNIT_ASSERT(strcmp(buffer, "No Reason") == 0); CPPUNIT_ASSERT(odbcGetNextRow(handle)); // Second record CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 2, buffer, 256)); CPPUNIT_ASSERT(strcmp(buffer, "10.1.20.3:5060") == 0); CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 3, buffer, 256)); CPPUNIT_ASSERT(strcmp(buffer, "2") == 0); CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 4, buffer, 256)); // When returning a timestamp as string data the fractional component // is truncated - this is expected behavior CPPUNIT_ASSERT(strcmp(buffer, "2006-03-10 13:00:10") == 0); CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 5, buffer, 256)); CPPUNIT_ASSERT(strcmp(buffer, "S") == 0); CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 7, buffer, 256)); CPPUNIT_ASSERT(strcmp(buffer, "call-111112") == 0); CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 8, buffer, 256)); CPPUNIT_ASSERT(strcmp(buffer, "54321") == 0); CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 9, buffer, 256)); CPPUNIT_ASSERT(strcmp(buffer, "09876") == 0); CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 10, buffer, 256)); CPPUNIT_ASSERT(strcmp(buffer, "sip:[email protected]") == 0); CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 11, buffer, 256)); CPPUNIT_ASSERT(strcmp(buffer, "sip:[email protected]") == 0); CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 12, buffer, 256)); CPPUNIT_ASSERT(strcmp(buffer, "10.1.20.71") == 0); CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 13, buffer, 256)); CPPUNIT_ASSERT(strcmp(buffer, "refer-to-2") == 0); CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 14, buffer, 256)); CPPUNIT_ASSERT(strcmp(buffer, "referred-by-2") == 0); CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 15, buffer, 256)); CPPUNIT_ASSERT(strcmp(buffer, "0") == 0); CPPUNIT_ASSERT(odbcGetColumnStringData(handle, 16, buffer, 256)); CPPUNIT_ASSERT(strcmp(buffer, "No Reason-2") == 0); // End of rows CPPUNIT_ASSERT(!odbcGetNextRow(handle)); CPPUNIT_ASSERT(odbcDisconnect(handle)); } }