/test/antq/dep/gradle_test.clj

https://github.com/liquidz/antq · Clojure · 54 lines · 44 code · 7 blank · 3 comment · 0 complexity · 14292b38850a11544a42198860d66aba MD5 · raw file

  1. (ns antq.dep.gradle-test
  2. (:require
  3. [antq.dep.gradle :as sut]
  4. [antq.record :as r]
  5. [clojure.java.io :as io]
  6. [clojure.test :as t]))
  7. (def ^:private file-path
  8. "path/to/build.gradle")
  9. (def ^:private expected-repos
  10. {"MavenRepo" {:url "https://repo.maven.apache.org/maven2/"}
  11. "clojars" {:url "https://repo.clojars.org"}})
  12. (defn- java-dependency
  13. [m]
  14. (r/map->Dependency (merge {:project :gradle
  15. :type :java
  16. :file file-path
  17. :repositories expected-repos}
  18. m)))
  19. (def ^:private defined-deps
  20. [(java-dependency {:name "org.ajoberstar/jovial" :version "0.3.0"})
  21. (java-dependency {:name "org.clojure/tools.namespace" :version "1.0.0"})
  22. (java-dependency {:name "org.clojure/clojure" :version "1.10.0"})])
  23. (t/deftest extract-deps-test
  24. (let [deps (sut/extract-deps
  25. file-path
  26. (.getPath (io/resource "dep/build.gradle")))
  27. defined-deps (set defined-deps)
  28. actual-deps (set deps)]
  29. ;; NOTE: Gradle on local additionally detects `nrepl/nrepl`
  30. ;; And also, gradle on GitHub Actions additionally detects `org.clojure/java.classpath`
  31. ;; So we check only dependencies which is explicitly defined in buld.gradle.
  32. (t/is (every? #(contains? actual-deps %) defined-deps))))
  33. (t/deftest extract-deps-without-repositories-test
  34. (let [deps (sut/extract-deps
  35. file-path
  36. (.getPath (io/resource "dep/build_no_repo.gradle")))
  37. defined-deps (->> defined-deps
  38. (map #(assoc % :repositories nil))
  39. (set))
  40. actual-deps (set deps)]
  41. (t/is (every? #(contains? actual-deps %) defined-deps))))
  42. (t/deftest extract-deps-command-error-test
  43. (with-redefs [sut/gradle-command "__non-existing-command__"]
  44. (let [deps (sut/extract-deps
  45. file-path
  46. (.getPath (io/resource "dep/build.gradle")))]
  47. (t/is (nil? deps)))))