Advertisement
NatanZB

Prepare for tests

May 22nd, 2016
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.98 KB | None | 0 0
  1. bool Execute(char * command, ExecStatusType type) {
  2. res = PQexec(conn, command);
  3. if (!res || PQresultStatus(res) != type) {
  4. fprintf(stderr, "Error executing query: %s\n", PQresultErrorMessage(res));
  5. PQclear(res);
  6. exit(1);
  7. }
  8. return true;
  9. }
  10.  
  11. void InitSystem() {
  12. /* DROPPING */
  13. Execute("DROP TABLE customer", PGRES_COMMAND_OK);
  14. PQclear(res);
  15. Execute("DROP TABLE account", PGRES_COMMAND_OK);
  16. PQclear(res);
  17. Execute("DROP TABLE ownsacc", PGRES_COMMAND_OK);
  18. PQclear(res);
  19. Execute("DROP TABLE branch", PGRES_COMMAND_OK);
  20. PQclear(res);
  21. Execute("DROP TABLE managesacc", PGRES_COMMAND_OK);
  22. PQclear(res);
  23. Execute("DROP TABLE withdrawal", PGRES_COMMAND_OK);
  24. PQclear(res);
  25. Execute("DROP TABLE transfer", PGRES_COMMAND_OK);
  26. PQclear(res);
  27. /* INITING */
  28. Execute("CREATE TABLE customer AS SELECT * FROM course_customer", PGRES_COMMAND_OK);
  29. PQclear(res);
  30. Execute("CREATE TABLE account AS SELECT * FROM course_account", PGRES_COMMAND_OK);
  31. PQclear(res);
  32. Execute("CREATE TABLE ownsacc AS SELECT * FROM course_ownsacc", PGRES_COMMAND_OK);
  33. PQclear(res);
  34. Execute("CREATE TABLE branch AS SELECT * FROM course_branch", PGRES_COMMAND_OK);
  35. PQclear(res);
  36. Execute("CREATE TABLE managesacc AS SELECT * FROM course_managesacc", PGRES_COMMAND_OK);
  37. PQclear(res);
  38. Execute("CREATE TABLE withdrawal AS SELECT * FROM course_withdrawal", PGRES_COMMAND_OK);
  39. PQclear(res);
  40. Execute("CREATE TABLE transfer AS SELECT * FROM course_transfer", PGRES_COMMAND_OK);
  41. PQclear(res);
  42. }
  43.  
  44. void Prepare_Aux(int x, char * name, char * address) {
  45. char cmd[512];
  46. sprintf(cmd, "INSERT INTO customer VALUES (%d, '%s', '%s')",x,name,address);
  47. Execute(cmd, PGRES_COMMAND_OK);
  48. PQclear(res);
  49. addAccount(x + 100, x, (x % 5) + 10);
  50. }
  51.  
  52. void PrepareForTest1() {
  53. InitSystem();
  54. char cmd[512];
  55. Prepare_Aux(1, "Jon Snow", "Castle Black");
  56. Prepare_Aux(2, "Ned Stark", "Winterfell");
  57. Prepare_Aux(3, "Tyrion Lannister", "Kings Landing");
  58. Prepare_Aux(4, "Sansa Stark", "Winterfell");
  59. Prepare_Aux(5, "Arya Stark", "Winterfell");
  60. Prepare_Aux(6, "Theon Greyjoy", "Pike");
  61. Prepare_Aux(7, "Jaime Lannister", "Kings Landing");
  62. Prepare_Aux(8, "Cersei Lannister", "Kings Landing");
  63. Prepare_Aux(9, "Daenerys Targaryen_The_Unburnt_Queen_of_the_Andals_the_Rhoynar_and_of_the_First_Men_Queen_of_Meereen_Khaleesi_of_the_Great_Grass_Sea_Breaker_of_Chains_Mother_of_Dragons", "Meereen");
  64. Prepare_Aux(10, "Viserys Targaryen", "Heaven or Hell");
  65. Prepare_Aux(11, "Joffrey Baratheon", "Hell for sure");
  66. Prepare_Aux(12, "Robert Baratheon", "Heaven probably");
  67. Prepare_Aux(13, "Robb Stark", "Winterfell");
  68. Prepare_Aux(14, "Ramsay Bolton", "We dont know");
  69. Prepare_Aux(15, "Jorah Mormont", "Meereen");
  70. sprintf(cmd, "UPDATE account SET Balance = 100, Overdraft = -1000 WHERE anumber = 100");
  71. Execute(cmd, PGRES_COMMAND_OK);
  72. PQclear(res);
  73. sprintf(cmd, "UPDATE account SET Balance = 10000,Overdraft = -100000 WHERE ANumber = 102");
  74. Execute(cmd, PGRES_COMMAND_OK);
  75. PQclear(res);
  76. sprintf(cmd, "UPDATE account SET Balance = 2100000,Overdraft = -123456 WHERE ANumber = 103");
  77. Execute(cmd, PGRES_COMMAND_OK);
  78. PQclear(res);
  79. sprintf(cmd, "UPDATE account SET Balance = 3100000,Overdraft = -223456 WHERE ANumber = 107");
  80. Execute(cmd, PGRES_COMMAND_OK);
  81. PQclear(res);
  82. sprintf(cmd, "UPDATE account SET Balance = 3990000,Overdraft = -223456 WHERE ANumber = 108");
  83. Execute(cmd, PGRES_COMMAND_OK);
  84. PQclear(res);
  85. printf("INIT DONE!");
  86. }
  87.  
  88. ////////////////////////
  89.  
  90. int main(int argc, char** argv) {
  91. /* Make a connection to the DB. If parameters omitted, default values are used */
  92. char connect_param[CMD_SIZE + 2];
  93. sprintf(connect_param, "host=pgsql.cs.technion.ac.il dbname=%s user=%s password=%s",
  94. USERNAME, USERNAME, PASSWORD);
  95. conn = PQconnectdb(connect_param);
  96. if (!conn || PQstatus(conn) == CONNECTION_BAD) {
  97. printf("Connection to server failed: %s\n", PQerrorMessage(conn));
  98. PQfinish(conn);
  99. return 1;
  100. }
  101. /* RESETTING TABLES */
  102. PrepareForTest1();
  103. parseInput();
  104. PQfinish(conn);
  105. return 0;
  106. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement