Пример #1
0
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;
}
Пример #2
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));
       }
    }
Пример #3
0
 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));                           
       }
    }
Пример #4
0
   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));
         }
      }