Guest User

Untitled

a guest
Feb 18th, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.80 KB | None | 0 0
  1. (in-package :sql)
  2.  
  3. (defclass test-result-set (test-suite)
  4. ())
  5.  
  6. (defmethod test-class-prologue ((self test-result-set))
  7. (let ((datasource (make-instance 'postgresql-datasource
  8. :database (sql-tests:db-name)
  9. :user (sql-tests:db-user))))
  10. (setf *default-database* (get-connection datasource))))
  11.  
  12. (defparameter *result-set* nil)
  13.  
  14. (defmethod test-prologue ((self test-result-set))
  15. (execute-command "DROP TABLE IF EXISTS finches;")
  16. (execute-command "CREATE TABLE finches (id serial PRIMARY KEY, name varchar(30) UNIQUE NOT NULL);")
  17. (execute-command "INSERT INTO finches (name) values ('green'), ('gray');")
  18. (setf *result-set* (db-execute-query *default-database* "SELECT * FROM finches order by id;")))
  19.  
  20. (defmethod test-epilogue ((self test-result-set))
  21. (execute-command "DROP TABLE finches;"))
  22.  
  23. (define-test (self test-result-set) "get-all-rows-returns-nil"
  24. (test-assert (eql nil (get-all-rows (db-execute-query *default-database* "SELECT * FROM finches WHERE name IS NULL;")))))
  25.  
  26. (define-test (self test-result-set) "get-all-rows-returns-list"
  27. (test-assert (= 2 (length (get-all-rows *result-set*)))))
  28.  
  29. (define-test (self test-result-set) "get-next-row-returns-nil"
  30. (test-assert (eql nil (get-next-row (db-execute-query *default-database* "SELECT * FROM finches WHERE name IS NULL;")))))
  31.  
  32. (define-test (self test-result-set) "get-next-row-return-first-row"
  33. (test-assert (equal '(1 "green") (get-next-row *result-set*))))
  34.  
  35. (define-test (self test-result-set) "get-next-row-return-second-row"
  36. (get-next-row *result-set*)
  37. (test-assert (equal '(2 "gray") (get-next-row *result-set*))))
  38.  
  39. (define-test (self test-result-set) "get-next-row-returns-nil-after-returning-all-rows"
  40. (get-next-row *result-set*)
  41. (test-assert (equal '(2 "gray") (get-next-row *result-set*))))
Add Comment
Please, Sign In to add comment