Skip to content

Commit

Permalink
Fix util.xml #10
Browse files Browse the repository at this point in the history
  • Loading branch information
liquidz committed Jul 18, 2020
1 parent 73d0fac commit c79c34c
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 15 deletions.
24 changes: 18 additions & 6 deletions src/antq/util/xml.clj
Original file line number Diff line number Diff line change
@@ -1,21 +1,33 @@
(ns antq.util.xml)

(defn xml-ns [content]
(-> (if (sequential? content)
(first (filter map? content))
content)
:tag
namespace))

(defn get-tags [tag content]
(let [xns (xml-ns content)]
(->> content
(filter (comp #{(keyword xns (name tag))} :tag)))))

(defn get-value
[content tag]
[tag content]
(->> content
(filter (comp #{tag} :tag))
(get-tags tag)
first
:content
first))

(defn get-values
[content tags]
(map #(get-value content %) tags))
[tags content]
(map #(get-value % content) tags))

(defn get-attribute
[content tag attr]
[tag attr content]
(->> content
(filter (comp #{tag} :tag))
(get-tags tag)
first
:attrs
attr))
18 changes: 9 additions & 9 deletions test/antq/util/xml_test.clj
Original file line number Diff line number Diff line change
Expand Up @@ -13,22 +13,22 @@
xml-seq))

(def ^:private test-entries
(filter (comp #{:entry} :tag) test-xml))
(sut/get-tags :entry test-xml))

(t/deftest get-value-test
(t/is (= "Foo 1.0.0" (-> test-entries first :content (sut/get-value :title))))
(t/is (nil? (-> test-entries first :content (sut/get-value :unknown)))))
(t/is (= "Foo 1.0.0" (->> test-entries first :content (sut/get-value :title))))
(t/is (nil? (->> test-entries first :content (sut/get-value :unknown)))))

(t/deftest get-values-test
(t/is (= ["tag:github.com,2008:Repository/928777/1.0.0" "Foo 1.0.0"]
(-> test-entries first :content (sut/get-values [:id :title]))))
(->> test-entries first :content (sut/get-values [:id :title]))))
(t/is (= [nil "Foo 1.0.0"]
(-> test-entries first :content (sut/get-values [:unknown :title]))))
(->> test-entries first :content (sut/get-values [:unknown :title]))))
(t/is (= [nil nil]
(-> test-entries first :content (sut/get-values [:unknown :unknown])))))
(->> test-entries first :content (sut/get-values [:unknown :unknown])))))

(t/deftest get-attribute-test
(t/is (= "https://github.com/foo/bar/releases/tag/1.0.0"
(-> test-entries first :content (sut/get-attribute :link :href))))
(t/is (nil? (-> test-entries first :content (sut/get-attribute :link :unknown))))
(t/is (nil? (-> test-entries first :content (sut/get-attribute :unknown :href)))))
(->> test-entries first :content (sut/get-attribute :link :href))))
(t/is (nil? (->> test-entries first :content (sut/get-attribute :link :unknown))))
(t/is (nil? (->> test-entries first :content (sut/get-attribute :unknown :href)))))

0 comments on commit c79c34c

Please sign in to comment.