2012-08-29 16:47:06 +02:00
|
|
|
(require 'ert)
|
|
|
|
|
|
|
|
(require 'ein-worksheet)
|
|
|
|
(require 'ein-testing-cell)
|
|
|
|
|
|
|
|
(defvar ein:testing-worksheet-example-data
|
|
|
|
(list (ein:testing-codecell-data "code example input")
|
|
|
|
(ein:testing-markdowncell-data "markdown example input")
|
|
|
|
(ein:testing-rawcell-data "raw example input")
|
|
|
|
(ein:testing-htmlcell-data "html example input")
|
|
|
|
(ein:testing-headingcell-data "heading example input")))
|
|
|
|
|
|
|
|
(defun ein:testing-worksheet-new ()
|
|
|
|
(make-instance 'ein:worksheet
|
|
|
|
:discard-output-p (cons #'ignore nil)))
|
|
|
|
|
2012-08-30 00:39:19 +02:00
|
|
|
(defun ein:testing-worksheet-to-json (cells &optional metadata)
|
2012-08-30 00:30:31 +02:00
|
|
|
(let* ((ws-0 (ein:worksheet-from-json (ein:testing-worksheet-new)
|
2012-08-30 00:39:19 +02:00
|
|
|
(list :cells cells
|
|
|
|
:metadata metadata)))
|
2012-08-29 16:47:06 +02:00
|
|
|
(ws-1 (ein:testing-worksheet-new))
|
|
|
|
(json-0 (ein:worksheet-to-json ws-0))
|
|
|
|
(json-1 (ein:worksheet-to-json
|
|
|
|
(ein:worksheet-from-json ws-1
|
|
|
|
(ein:json-read-from-string
|
|
|
|
(json-encode json-0))))))
|
2012-08-30 00:36:44 +02:00
|
|
|
(let* ((found (assoc 'metadata json-0)))
|
|
|
|
(when found
|
|
|
|
(should (cdr found))))
|
2012-08-29 16:47:06 +02:00
|
|
|
(should (equal json-0 json-1))))
|
|
|
|
|
|
|
|
(ert-deftest ein:worksheet-to-json/empty ()
|
|
|
|
(ein:testing-worksheet-to-json nil))
|
|
|
|
|
|
|
|
(ert-deftest ein:worksheet-to-json/example-data ()
|
|
|
|
(ein:testing-worksheet-to-json ein:testing-worksheet-example-data))
|
2012-08-30 00:39:19 +02:00
|
|
|
|
|
|
|
(ert-deftest ein:worksheet-to-json/example-data-with-metadata ()
|
|
|
|
(ein:testing-worksheet-to-json ein:testing-worksheet-example-data
|
|
|
|
'(:name "Worksheet name")))
|