From 712654d4c023a2ab13190c6905d313e0ba897965 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20H=C3=B6rnquist?= Date: Mon, 2 Oct 2023 19:26:40 +0200 Subject: Rewrite test running system. --- tests/unit/vcomponent/vcomponent.scm | 105 +++++++++++++++++++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 tests/unit/vcomponent/vcomponent.scm (limited to 'tests/unit/vcomponent/vcomponent.scm') diff --git a/tests/unit/vcomponent/vcomponent.scm b/tests/unit/vcomponent/vcomponent.scm new file mode 100644 index 00000000..ebd0b1ff --- /dev/null +++ b/tests/unit/vcomponent/vcomponent.scm @@ -0,0 +1,105 @@ +;;; Commentary: +;; Test base functionallity of vcomponent structures. +;;; Code: + +(define-module (test vcomponent) + :use-module (srfi srfi-17) + :use-module (srfi srfi-64) + :use-module (srfi srfi-88) + :use-module (hnh util table) + :use-module (datetime) + :use-module (vcomponent base)) + + + + +(define ev + (prop (vcomponent type: 'DUMMY) + 'X-KEY "value")) + +(test-eqv "Non-existant properties return #f" + #f (prop ev 'MISSING)) + +(test-assert "Existing property is non-false" + (prop ev 'X-KEY)) + +(test-equal "Getting value of existing property" + "value" (prop ev 'X-KEY)) + +(define calendar (add-child (vcomponent type: 'VCALENDAR) + ev)) + +(test-equal 1 (length (children calendar))) + +;;; TODO remove child +;; (abandon! calendar ev) +;; (test-equal 0 (length (children calendar))) + + + +(define vline* + (vline + key: 'DTSTART + vline-value: (date year: 2020 month: 01 day: 02) + vline-parameters: (alist->table + '((VALUE . "DATE"))) + vline-source: "DTSTART;VALUE=DATE:2020-01-02")) + +(test-group "vline" + (test-assert "Type check works as expected" + (vline? vline*))) + +(define vcomponent* + (vcomponent type: 'VEVENT)) + +(test-assert "Type check works as expected" + (vcomponent? vcomponent*)) + +(define child + (vcomponent type: 'CHILD)) + + +(test-eqv + "An added component extends length" + 1 (length (children (add-child vcomponent* child)))) + +(test-eqv + "But the source isn't modified" + 0 (length (children vcomponent*))) + +(test-equal "Setting property" + (list (list 'KEY (vline key: 'KEY vline-value: "Value"))) + (properties + (prop vcomponent* 'KEY "Value"))) + +(let ((vl (vline key: 'KEY vline-value: "Value"))) + (test-equal "Setting property vline" + (list (list 'KEY vl)) + (properties + (prop* vcomponent* 'KEY vl)))) + +(test-equal "Set properties test" + '(K1 K2) + (map car + (properties + (apply set-properties + vcomponent* + `((K1 . "V1") + (K2 . "V2")))))) + +;; remove-property + +;; extract extract* + + +;; remove-parameter +;; value +;; param + +;; parameters +;; properties + +;; x-property? +;; internal-field? + +'((vcomponent base)) -- cgit v1.2.3