Skip to content

Commit

Permalink
Use records to simplify the tests
Browse files Browse the repository at this point in the history
  • Loading branch information
egli committed Jul 2, 2024
1 parent 01aa031 commit 742055d
Showing 1 changed file with 25 additions and 30 deletions.
55 changes: 25 additions & 30 deletions test/clj/daisyproducer2/test/abacus_import_test.clj
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,15 @@
[java-time.api :as time]
[clojure.data.xml :as xml]))

(defrecord Document [product-number title creator source language date production-series-number reihe aufwand daisyproducer?])
(defrecord Raw [product-number title creator language source date source-publisher source-edition production-series-number reihe aufwand daisyproducer?])
(defrecord Imported [product-number product-type
title author publisher date source language
source-publisher source-edition
production-series production-series-number production-source
daisyproducer?])

(defn- xml-sample
[{:keys [product-number title creator source language date production-series-number reihe aufwand daisyproducer?]}]
[{:keys [product-number title creator source language date source-publisher source-edition production-series-number reihe aufwand daisyproducer?]}]
[:AbaConnectContainer
[:Task
[:Transaction
Expand All @@ -24,6 +29,8 @@
[:language language]
[:date date]]
[:sbs
[:verlag source-publisher]
[:auflageJahr source-edition]
[:rucksackNr production-series-number]
[:reihe reihe]
[:daisy_producer (if daisyproducer? "ja" "nein")]
Expand All @@ -33,41 +40,29 @@
(testing "ABACUS import"

(testing "Read XML"
(let [document {:product-number "EB11111"
:title "Eine für de Thesi"
:author "Gwerder, Anna"
:language "de"
:date (time/local-date "2011-12-23")
:publisher "SBS Schweizerische Bibliothek für Blinde, Seh- und Lesebehinderte"
:daisyproducer? false
:product-type :ebook}]
(are [expected actual] (= expected (read-xml (xml/sexp-as-element (xml-sample actual))))
document (->Document "EB11111" "Eine für de Thesi" "Gwerder, Anna" "" "de" "2011-12-23" 0 "" "" false)
(assoc document :daisyproducer? true) (->Document "EB11111" "Eine für de Thesi" "Gwerder, Anna" "" "de" "2011-12-23" 0 "" "" true)
(let [document (->Imported "EB11111" :ebook "Eine für de Thesi" "Gwerder, Anna" "SBS Schweizerische Bibliothek für Blinde, Seh- und Lesebehinderte"
(time/local-date "2011-12-23") "" "de" "DVA" "1. / 2011" "" "" "" false)]
(are [expected actual] (= (into {} expected) (read-xml (xml/sexp-as-element (xml-sample actual))))
document (->Raw "EB11111" "Eine für de Thesi" "Gwerder, Anna" "de" "" "2011-12-23" "DVA" "1. / 2011" 0 "" "" false)
(assoc document :daisyproducer? true) (->Raw "EB11111" "Eine für de Thesi" "Gwerder, Anna" "de" "" "2011-12-23" "DVA" "1. / 2011" 0 "" "" true)
(assoc document :production-series-number "500" :production-series "PPP")
(->Document "EB11111" "Eine für de Thesi" "Gwerder, Anna" "" "de" "2011-12-23" 500 "" "" false)
(->Raw "EB11111" "Eine für de Thesi" "Gwerder, Anna" "de" "" "2011-12-23" "DVA" "1. / 2011" 500 "" "" false)
(assoc document :production-series-number "7000" :production-series "SJW")
(->Document "EB11111" "Eine für de Thesi" "Gwerder, Anna" "" "de" "2011-12-23" 0 "SJW 7000" "" false)
(->Raw "EB11111" "Eine für de Thesi" "Gwerder, Anna" "de" "" "2011-12-23" "DVA" "1. / 2011" 0 "SJW 7000" "" false)
(assoc document :product-number "GD11111" :product-type :large-print)
(->Document "GD11111" "Eine für de Thesi" "Gwerder, Anna" "" "de" "2011-12-23" 0 "" "" false)
(->Raw "GD11111" "Eine für de Thesi" "Gwerder, Anna" "de" "" "2011-12-23" "DVA" "1. / 2011" 0 "" "" false)
(assoc document :product-number "PS11111" :product-type :braille)
(->Document "PS11111" "Eine für de Thesi" "Gwerder, Anna" "" "de" "2011-12-23" 0 "" "" false)
(->Raw "PS11111" "Eine für de Thesi" "Gwerder, Anna" "de" "" "2011-12-23" "DVA" "1. / 2011" 0 "" "" false)
(assoc document :production-source "electronicData")
(->Document "EB11111" "Eine für de Thesi" "Gwerder, Anna" "" "de" "2011-12-23" 0 "" "D" false)
(->Raw "EB11111" "Eine für de Thesi" "Gwerder, Anna" "de" "" "2011-12-23" "DVA" "1. / 2011" 0 "" "D" false)
document
(->Document "EB11111" "Eine für de Thesi" "Gwerder, Anna" "" "de" "2011-12-23" 0 "" "C" false))))
(->Raw "EB11111" "Eine für de Thesi" "Gwerder, Anna" "de" "" "2011-12-23" "DVA" "1. / 2011" 0 "" "C" false))))))

(deftest abacus-import-file
(testing "ABACUS import"

(testing "Read a file"
(let [sample (io/file (io/resource "SN_Alfresco_EB11111.xml"))]
(is (= {:source-publisher "DVA"
:date (time/local-date "2011-12-23")
:source-edition "1. / 2011"
:publisher "SBS Schweizerische Bibliothek für Blinde, Seh- und Lesebehinderte"
:product-number "EB11111"
:title "Eine für de Thesi"
:author "Gwerder, Anna"
:production-source "electronicData"
:product-type :ebook
:language "de"
:daisyproducer? true}
(is (= (into {} (->Imported "EB11111" :ebook "Eine für de Thesi" "Gwerder, Anna" "SBS Schweizerische Bibliothek für Blinde, Seh- und Lesebehinderte"
(time/local-date "2011-12-23") "" "de" "DVA" "1. / 2011" "" "" "electronicData" true))
(import-new-document-file sample)))))))

0 comments on commit 742055d

Please sign in to comment.