diff --git a/dev-resources/INVOICE - 03882095.pdf b/dev-resources/INVOICE - 03882095.pdf new file mode 100755 index 00000000..3810d667 Binary files /dev/null and b/dev-resources/INVOICE - 03882095.pdf differ diff --git a/test/clj/auto_ap/parse/templates_test.clj b/test/clj/auto_ap/parse/templates_test.clj index 3313bcfb..fcdfe54b 100644 --- a/test/clj/auto_ap/parse/templates_test.clj +++ b/test/clj/auto_ap/parse/templates_test.clj @@ -51,3 +51,22 @@ (is (= "720.33" (:total (nth results 1)))) (is (= "853.16" (:total (nth results 2)))) (is (= "1066.60" (:total (nth results 3))))))) + +(deftest parse-bonanza-produce-invoice-03882095 + (testing "Should parse Bonanza Produce invoice 03882095 with customer identifier including address" + (let [pdf-file (io/file "dev-resources/INVOICE - 03882095.pdf") + pdf-text (:out (clojure.java.shell/sh "pdftotext" "-layout" (str pdf-file) "-")) + results (sut/parse pdf-text) + result (first results)] + (is (some? results) "parse should return a result") + (is (some? result) "Template should match and return a result") + (when result + (is (= "Bonanza Produce" (:vendor-code result))) + (is (= "03882095" (:invoice-number result))) + (let [d (:date result)] + (is (= 2026 (time/year d))) + (is (= 1 (time/month d))) + (is (= 23 (time/day d)))) + (is (= "NICK THE GREEK" (:customer-identifier result))) + (is (= "600 VISTA WAY" (str/trim (:account-number result)))) + (is (= "946.24" (:total result)))))))