branch: master
commit 602ad6d1951afa6db282ecbd33df8e90ff22c579
Author: Ian D <[email protected]>
Commit: Ian D <[email protected]>
Added tests for org-bat-parse-form
* org-bat-tests.el (org-bat-parse-form-no-arguments):
(org-bat-parse-form-no-arguments-modifier):
(org-bat-parse-form-single-argument):
(org-bat-parse-form-string-argument): New tests.
---
org-bat-tests.el | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 64 insertions(+)
diff --git a/org-bat-tests.el b/org-bat-tests.el
new file mode 100644
index 0000000..4a1e32f
--- /dev/null
+++ b/org-bat-tests.el
@@ -0,0 +1,64 @@
+;;; org-bat-tests.el --- Tests for org-bat
+
+;; Author: Ian Dunn
+
+;;; Commentary:
+
+;;; Code:
+
+(require 'org-bat)
+(require 'ert)
+
+(ert-deftest org-bat-parse-form-no-arguments ()
+ (let* ((input-string "test-string")
+ (parsed (org-bat-parse-form input-string)))
+ (should parsed)
+ (should (= (length parsed) 4))
+ (pcase-let* ((`(,token ,args ,modifier ,pos) parsed))
+ (should (eq token 'test-string))
+ (should (not args))
+ (should (not modifier))
+ (should (= pos 11)))))
+
+(ert-deftest org-bat-parse-form-no-arguments-modifier ()
+ (let* ((input-string "!test-string")
+ (parsed (org-bat-parse-form input-string)))
+ (should parsed)
+ (should (= (length parsed) 4))
+ (pcase-let* ((`(,token ,args ,modifier ,pos) parsed))
+ (should (eq token 'test-string))
+ (should (not args))
+ (should (eq modifier '!))
+ (should (= pos 12)))))
+
+(ert-deftest org-bat-parse-form-single-argument ()
+ (let* ((input-string "test-string(abc)")
+ (parsed (org-bat-parse-form input-string)))
+ (should parsed)
+ (should (= (length parsed) 4))
+ (pcase-let* ((`(,token ,args ,modifier ,pos) parsed))
+ (should (eq token 'test-string))
+ (should (= (length args) 1))
+ (should (stringp (nth 0 args)))
+ (should (string-equal (nth 0 args) "abc"))
+ (should (not modifier))
+ (should (= pos (length input-string))))))
+
+(ert-deftest org-bat-parse-form-string-argument ()
+ (let* ((input-string "test-string(abc,\"def (ghi)\")")
+ (parsed (org-bat-parse-form input-string)))
+ (should parsed)
+ (should (= (length parsed) 4))
+ (pcase-let* ((`(,token ,args ,modifier ,pos) parsed))
+ (should (eq token 'test-string))
+ (should (= (length args) 2))
+ (should (stringp (nth 0 args)))
+ (should (string-equal (nth 0 args) "abc"))
+ (should (stringp (nth 1 args)))
+ (should (string-equal (nth 1 args) "def (ghi)"))
+ (should (not modifier))
+ (should (= pos (length input-string))))))
+
+(provide 'org-bat-tests)
+
+;;; org-bat-tests.el ends here