Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (in-package :sql)
- (defclass test-result-set (test-suite)
- ())
- (defmethod test-class-prologue ((self test-result-set))
- (let ((datasource (make-instance 'postgresql-datasource
- :database (sql-tests:db-name)
- :user (sql-tests:db-user))))
- (setf *default-database* (get-connection datasource))))
- (defparameter *result-set* nil)
- (defmethod test-prologue ((self test-result-set))
- (execute-command "DROP TABLE IF EXISTS finches;")
- (execute-command "CREATE TABLE finches (id serial PRIMARY KEY, name varchar(30) UNIQUE NOT NULL);")
- (execute-command "INSERT INTO finches (name) values ('green'), ('gray');")
- (setf *result-set* (db-execute-query *default-database* "SELECT * FROM finches order by id;")))
- (defmethod test-epilogue ((self test-result-set))
- (execute-command "DROP TABLE finches;"))
- (define-test (self test-result-set) "get-all-rows-returns-nil"
- (test-assert (eql nil (get-all-rows (db-execute-query *default-database* "SELECT * FROM finches WHERE name IS NULL;")))))
- (define-test (self test-result-set) "get-all-rows-returns-list"
- (test-assert (= 2 (length (get-all-rows *result-set*)))))
- (define-test (self test-result-set) "get-next-row-returns-nil"
- (test-assert (eql nil (get-next-row (db-execute-query *default-database* "SELECT * FROM finches WHERE name IS NULL;")))))
- (define-test (self test-result-set) "get-next-row-return-first-row"
- (test-assert (equal '(1 "green") (get-next-row *result-set*))))
- (define-test (self test-result-set) "get-next-row-return-second-row"
- (get-next-row *result-set*)
- (test-assert (equal '(2 "gray") (get-next-row *result-set*))))
- (define-test (self test-result-set) "get-next-row-returns-nil-after-returning-all-rows"
- (get-next-row *result-set*)
- (test-assert (equal '(2 "gray") (get-next-row *result-set*))))
Add Comment
Please, Sign In to add comment