Adjust tests to match new exception handling

This commit is contained in:
Sean Corfield 2020-05-31 17:42:07 -07:00
parent 53c3b5f48e
commit cc1781d3fb

View file

@ -24,20 +24,20 @@
:networkTimeout :schema :transactionIsolation :typeMap :warnings
;; boolean properties
:closed :readOnly
;; added by bean itself
;; configured to be added as if by clojure.core/bean
:class})
(deftest connection-datafy-tests
(testing "connection datafication"
(with-open [con (jdbc/get-connection (ds))]
(if (derby?)
(is (= #{:exception :cause} ; at least one property not supported
(set (keys (d/datafy con)))))
(let [data (set (keys (d/datafy con)))]
(when-let [diff (seq (set/difference data basic-connection-keys))]
(println (:dbtype (db)) :connection (sort diff)))
(is (= basic-connection-keys
(set/intersection basic-connection-keys data))))))))
(let [reference-keys (cond-> basic-connection-keys
(derby?) (-> (disj :networkTimeout)
(conj :networkTimeout/exception)))
data (set (keys (d/datafy con)))]
(when-let [diff (seq (set/difference data reference-keys))]
(println (:dbtype (db)) :connection (sort diff)))
(is (= reference-keys
(set/intersection reference-keys data)))))))
(def ^:private basic-database-metadata-keys
"Generic JDBC Connection fields."
@ -63,28 +63,33 @@
:typeInfo :userName
;; boolean properties
:catalogAtStart :readOnly
;; added by bean itself
:class})
;; configured to be added as if by clojure.core/bean
:class
;; added by next.jdbc.datafy if the datafication succeeds
:all-tables})
(deftest database-metadata-datafy-tests
(testing "database metadata datafication"
(with-open [con (jdbc/get-connection (ds))]
(if (or (postgres?) (sqlite?))
(is (= #{:exception :cause} ; at least one property not supported
(set (keys (d/datafy (.getMetaData con))))))
(let [data (set (keys (d/datafy (.getMetaData con))))]
(when-let [diff (seq (set/difference data basic-database-metadata-keys))]
(println (:dbtype (db)) :db-meta (sort diff)))
(is (= basic-database-metadata-keys
(set/intersection basic-database-metadata-keys data)))))))
(let [reference-keys (cond-> basic-database-metadata-keys
(postgres?) (-> (disj :rowIdLifetime)
(conj :rowIdLifetime/exception))
(sqlite?) (-> (disj :clientInfoProperties :rowIdLifetime)
(conj :clientInfoProperties/exception
:rowIdLifetime/exception)))
data (set (keys (d/datafy (.getMetaData con))))]
(when-let [diff (seq (set/difference data reference-keys))]
(println (:dbtype (db)) :db-meta (sort diff)))
(is (= reference-keys
(set/intersection reference-keys data))))))
(testing "nav to catalogs yields object"
(when-not (or (postgres?) (sqlite?))
(with-open [con (jdbc/get-connection (ds))]
(let [data (d/datafy (.getMetaData con))]
(doseq [k [:catalogs :clientInfoProperties :schemas :tableTypes :typeInfo]]
(let [rs (d/nav data k nil)]
(is (vector? rs))
(is (every? map? rs)))))))))
(with-open [con (jdbc/get-connection (ds))]
(let [data (d/datafy (.getMetaData con))]
(doseq [k (cond-> #{:catalogs :clientInfoProperties :schemas :tableTypes :typeInfo}
(sqlite?) (disj :clientInfoProperties))]
(let [rs (d/nav data k nil)]
(is (vector? rs))
(is (every? map? rs))))))))
(deftest result-set-metadata-datafy-tests
(testing "result set metadata datafication"