void test_database_update_event() { scheduler_t* scheduler; char sql[512]; PGresult* db_result; scheduler = scheduler_init(testdb, NULL); FO_ASSERT_PTR_NULL(scheduler->db_conn); database_init(scheduler); FO_ASSERT_PTR_NOT_NULL(scheduler->db_conn); Prepare_Testing_Data(scheduler); database_update_event(scheduler, NULL); sprintf(sql, "SELECT * FROM job;"); db_result = database_exec(scheduler, sql); //printf("result: %s", PQget(db_result, 0, "job_name")); if(PQresultStatus(db_result) == PGRES_TUPLES_OK && PQntuples(db_result) != 0) { FO_ASSERT_STRING_EQUAL(PQget(db_result, 0, "job_name"), "testing file"); FO_ASSERT_EQUAL(atoi(PQget(db_result, 0, "job_user_fk")), 1); } PQclear(db_result); database_reset_queue(scheduler); scheduler_destroy(scheduler); }
/** * Local function for testing data prepare */ int Prepare_Testing_Data_Scheduler(scheduler_t * scheduler) { char sql[512]; int upload_pk, job_pk, jq_pk; PGresult* db_result; sprintf(sql, "INSERT INTO upload (upload_desc,upload_filename,user_fk,upload_mode,upload_origin) VALUES('testing upload data', 'testing file', '1', '100', 'testing file')"); database_exec(scheduler, sql); /* get upload_pk of just added upload */ sprintf(sql, "SELECT currval('upload_upload_pk_seq') as mykey FROM %s", "upload"); db_result = database_exec(scheduler, sql); upload_pk = atoi(PQget(db_result, 0, "mykey")); PQclear(db_result); /* Add the upload record to the folder */ sprintf(sql, "INSERT INTO foldercontents (parent_fk,foldercontents_mode,child_id) VALUES ('1',2,'%d')", upload_pk); database_exec(scheduler, sql); /* Add the job info */ sprintf(sql, "INSERT INTO job (job_user_fk,job_queued,job_priority,job_name,job_upload_fk) VALUES('1',now(),'0','testing file',%d)", upload_pk); database_exec(scheduler, sql); /* get job_pk of just added upload */ sprintf(sql, "SELECT currval('job_job_pk_seq') as mykey FROM %s", "job"); db_result = database_exec(scheduler, sql); job_pk = atoi(PQget(db_result, 0, "mykey")); PQclear(db_result); sprintf(sql, "INSERT INTO jobqueue (jq_job_fk,jq_type,jq_args,jq_runonpfile,jq_starttime,jq_endtime,jq_end_bits,jq_host) VALUES ('%d', 'ununpack', '%d', NULL, NULL, NULL, 0, NULL)", job_pk, upload_pk); database_exec(scheduler, sql); sprintf(sql, "SELECT currval('jobqueue_jq_pk_seq') as mykey FROM %s", "jobqueue"); db_result = database_exec(scheduler, sql); jq_pk = atoi(PQget(db_result, 0, "mykey")); PQclear(db_result); return(jq_pk); }