;;; test-ob-java.el --- tests for ob-java.el ;; Copyright (c) 2020 Ian Martins ;; Authors: Ian Martins ;; This file is not part of GNU Emacs. ;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with this program. If not, see . ;;; Code: (require 'org-test) (org-test-for-executable "java") (unless (featurep 'ob-java) (signal 'missing-test-dependency "Support for java code blocks")) (ert-deftest ob-java/simple () "Hello world program that writes output." (if (executable-find org-babel-java-compiler-command) (org-test-at-id "6abbd6a0-b1b1-4fbf-96b6-6fbc024c4a6c" (org-babel-next-src-block 1) (should (string= "42" (org-babel-execute-src-block)))))) (ert-deftest ob-java/simple-with-bracket () "Hello world program that outputs an open square bracket." (if (executable-find org-babel-java-compiler-command) (org-test-at-id "6abbd6a0-b1b1-4fbf-96b6-6fbc024c4a6c" (org-babel-next-src-block 2) (should (string= "[42" (org-babel-execute-src-block)))))) (ert-deftest ob-java/simple-with-quote () "Hello world program that writes quotes." (if (executable-find org-babel-java-compiler-command) (org-test-at-id "6abbd6a0-b1b1-4fbf-96b6-6fbc024c4a6c" (org-babel-next-src-block 3) (should (string= "\"42\"" (org-babel-execute-src-block)))))) (ert-deftest ob-java/simple-return-int () "Hello world program that returns an int value." (if (executable-find org-babel-java-compiler-command) (org-test-at-id "6abbd6a0-b1b1-4fbf-96b6-6fbc024c4a6c" (org-babel-next-src-block 4) (should (eq 42 (org-babel-execute-src-block)))))) (ert-deftest ob-java/simple-return-float () "Hello world program that returns a float value." (if (executable-find org-babel-java-compiler-command) (org-test-at-id "6abbd6a0-b1b1-4fbf-96b6-6fbc024c4a6c" (org-babel-next-src-block 5) (should (equal 42.0 (org-babel-execute-src-block)))))) (ert-deftest ob-java/simple-return-string () "Hello world program that returns a string value." (if (executable-find org-babel-java-compiler-command) (org-test-at-id "6abbd6a0-b1b1-4fbf-96b6-6fbc024c4a6c" (org-babel-next-src-block 6) (should (string= "forty two" (org-babel-execute-src-block)))))) (ert-deftest ob-java/simple-with-main () "Hello world program that defines a main function." (if (executable-find org-babel-java-compiler-command) (org-test-at-id "6abbd6a0-b1b1-4fbf-96b6-6fbc024c4a6c" (org-babel-next-src-block 7) (should (string= "42" (org-babel-execute-src-block)))))) (ert-deftest ob-java/simple-with-main-args-array () "Hello world program that defines a main function with the square brackets after `args'." (if (executable-find org-babel-java-compiler-command) (org-test-at-id "6abbd6a0-b1b1-4fbf-96b6-6fbc024c4a6c" (org-babel-next-src-block 8) (should (string= "42" (org-babel-execute-src-block)))))) (ert-deftest ob-java/simple-with-class () "Hello world program that defines a class." (if (executable-find org-babel-java-compiler-command) (org-test-at-id "6abbd6a0-b1b1-4fbf-96b6-6fbc024c4a6c" (org-babel-next-src-block 9) (should (string= "42" (org-babel-execute-src-block)))))) (ert-deftest ob-java/simple-with-class-and-package () "Hello world program that defines a class and package." (if (executable-find org-babel-java-compiler-command) (org-test-at-id "6abbd6a0-b1b1-4fbf-96b6-6fbc024c4a6c" (org-babel-next-src-block 10) (should (string= "42" (org-babel-execute-src-block)))))) (ert-deftest ob-java/simple-with-class-attr () "Hello world program with class header attribute." (if (executable-find org-babel-java-compiler-command) (org-test-at-id "6abbd6a0-b1b1-4fbf-96b6-6fbc024c4a6c" (org-babel-next-src-block 11) (should (string= "42" (org-babel-execute-src-block)))))) (ert-deftest ob-java/simple-with-class-attr-with-package () "Hello world program with class attr with package." (if (executable-find org-babel-java-compiler-command) (org-test-at-id "6abbd6a0-b1b1-4fbf-96b6-6fbc024c4a6c" (org-babel-next-src-block 12) (should (string= "42" (org-babel-execute-src-block)))))) (ert-deftest ob-java/one-arg () "Command line arg." (if (executable-find org-babel-java-compiler-command) (org-test-at-id "0f1bb86b-9c9e-4ade-aaec-30b37965df1c" (org-babel-next-src-block 1) (should (string= "fortytwo" (org-babel-execute-src-block)))))) (ert-deftest ob-java/args-quoted-string () "Two command line args, first contains a space." (if (executable-find org-babel-java-compiler-command) (org-test-at-id "0f1bb86b-9c9e-4ade-aaec-30b37965df1c" (org-babel-next-src-block 2) (should (string= "forty two\n42\n" (org-babel-execute-src-block)))))) (ert-deftest ob-java/integer-var () "Read and write an integer variable." (if (executable-find org-babel-java-compiler-command) (org-test-at-id "d532cde5-2f7e-4415-99ba-3d99d148b9db" (org-babel-next-src-block 1) (should (string= "42" (org-babel-execute-src-block)))))) (ert-deftest ob-java/var-with-main () "Read and write an integer variable, with main function provided." (if (executable-find org-babel-java-compiler-command) (org-test-at-id "d532cde5-2f7e-4415-99ba-3d99d148b9db" (org-babel-next-src-block 2) (should (string= "42" (org-babel-execute-src-block)))))) (ert-deftest ob-java/var-with-class () "Read and write an integer variable, with class provided." (if (executable-find org-babel-java-compiler-command) (org-test-at-id "d532cde5-2f7e-4415-99ba-3d99d148b9db" (org-babel-next-src-block 3) (should (string= "42" (org-babel-execute-src-block)))))) (ert-deftest ob-java/var-with-class-and-package () "Read and write an integer variable, with class and package provided." (if (executable-find org-babel-java-compiler-command) (org-test-at-id "d532cde5-2f7e-4415-99ba-3d99d148b9db" (org-babel-next-src-block 4) (should (string= "42" (org-babel-execute-src-block)))))) (ert-deftest ob-java/var-with-class-and-hanging-curlies () "Read and write an integer variable, with class with hanging curlies." (if (executable-find org-babel-java-compiler-command) (org-test-at-id "d532cde5-2f7e-4415-99ba-3d99d148b9db" (org-babel-next-src-block 5) (should (string= "42" (org-babel-execute-src-block)))))) (ert-deftest ob-java/two-vars () "Read two integer variables, combine and write them." (if (executable-find org-babel-java-compiler-command) (org-test-at-id "d532cde5-2f7e-4415-99ba-3d99d148b9db" (org-babel-next-src-block 6) (should (string= "42" (org-babel-execute-src-block)))))) (ert-deftest ob-java/string-var () "Read and write a string variable." (if (executable-find org-babel-java-compiler-command) (org-test-at-id "d532cde5-2f7e-4415-99ba-3d99d148b9db" (org-babel-next-src-block 7) (should (string= "forty two, len=9" (org-babel-execute-src-block)))))) (ert-deftest ob-java/multiline-string-var () "Java doesn't support multiline string literals, so this errors." (if (executable-find org-babel-java-compiler-command) (org-test-at-id "d532cde5-2f7e-4415-99ba-3d99d148b9db" (org-babel-next-src-block 8) (should-error (org-babel-execute-src-block)) :type 'error))) (ert-deftest ob-java/return-vector-using-list () "Return a vector using a list." (if (executable-find org-babel-java-compiler-command) (org-test-at-id "3512119d-a2da-43c1-af7b-19a3cb72f76d" (org-babel-next-src-block 1) (should (equal '((4) (2)) (org-babel-execute-src-block)))))) (ert-deftest ob-java/return-vector-using-array () "Return a vector using an array." (if (executable-find org-babel-java-compiler-command) (org-test-at-id "3512119d-a2da-43c1-af7b-19a3cb72f76d" (org-babel-next-src-block 2) (should (equal '((4) (2)) (org-babel-execute-src-block)))))) (ert-deftest ob-java/read-return-list () "Read and return a list." (if (executable-find org-babel-java-compiler-command) (org-test-at-id "3512119d-a2da-43c1-af7b-19a3cb72f76d" (org-babel-next-src-block 3) (should (equal '("forty" "two") (org-babel-execute-src-block)))))) (ert-deftest ob-java/read-list-return-array () "Read a list and return an array." (if (executable-find org-babel-java-compiler-command) (org-test-at-id "3512119d-a2da-43c1-af7b-19a3cb72f76d" (org-babel-next-src-block 4) (should (equal '("forty" "two") (org-babel-execute-src-block)))))) (ert-deftest ob-java/read-return-list-with-package () "Return a vector." (if (executable-find org-babel-java-compiler-command) (org-test-at-id "3512119d-a2da-43c1-af7b-19a3cb72f76d" (org-babel-next-src-block 5) (should (equal '("forty" "two") (org-babel-execute-src-block)))))) (ert-deftest ob-java/read-output-list () "Return a vector." (if (executable-find org-babel-java-compiler-command) (org-test-at-id "3512119d-a2da-43c1-af7b-19a3cb72f76d" (org-babel-next-src-block 6) (should (equal "forty two\nforty two\n" (org-babel-execute-src-block)))))) (ert-deftest ob-java/list-var () "Read and write a list variable." (if (executable-find org-babel-java-compiler-command) (org-test-at-id "2b99499f-c12f-44fd-9b5d-1af929ca0079" (org-babel-next-src-block 1) (should (equal '("forty" "two") (org-babel-execute-src-block)))))) (ert-deftest ob-java/vector-var () "Read and write a vector variable." (if (executable-find org-babel-java-compiler-command) (org-test-at-id "2b99499f-c12f-44fd-9b5d-1af929ca0079" (org-babel-next-src-block 2) (should (equal '("forty" "two") (org-babel-execute-src-block)))))) (ert-deftest ob-java/matrix-var () "Read and write matrix variable." (if (executable-find org-babel-java-compiler-command) (org-test-at-id "2b99499f-c12f-44fd-9b5d-1af929ca0079" (org-babel-next-src-block 3) (should (equal '((2 4) (1 2)) (org-babel-execute-src-block)))))) (ert-deftest ob-java/matrix-var-with-header () "Read matrix variable and write it with header." (if (executable-find org-babel-java-compiler-command) (org-test-at-id "2b99499f-c12f-44fd-9b5d-1af929ca0079" (org-babel-next-src-block 4) (should (equal '(("col1" "col2") hline (2 4) (1 2)) (org-babel-execute-src-block)))))) (ert-deftest ob-java/output-table-with-header () "Write a table that includes a header." (if (executable-find org-babel-java-compiler-command) (org-test-at-id "2b99499f-c12f-44fd-9b5d-1af929ca0079" (org-babel-next-src-block 5) (should (equal "|col1|col2|\n|-\n|2|1\n|4|2\n" (org-babel-execute-src-block)))))) (ert-deftest ob-java/inhomogeneous_table () "Read and write an inhomogeneous table." (if (executable-find org-babel-java-compiler-command) (org-test-at-id "7fc09793-68e6-421c-8245-284863d025bf" (org-babel-next-src-block 1) (should (equal '(("forty" 4) ("two" 2)) (org-babel-execute-src-block)))))) (ert-deftest ob-java/import_library () "Import a standard java library." (if (executable-find org-babel-java-compiler-command) (org-test-at-id "3ce0d53f-780a-4769-8614-cbdd3e265708" (org-babel-next-src-block 1) (should (string= "encoded=NDI=, decoded=42" (org-babel-execute-src-block)))))) (ert-deftest ob-java/import_library_inline () "Import a standard java library." (if (executable-find org-babel-java-compiler-command) (org-test-at-id "3ce0d53f-780a-4769-8614-cbdd3e265708" (org-babel-next-src-block 2) (should (string= "encoded=NDI=, decoded=42" (org-babel-execute-src-block)))))) ;;; test-ob-java.el ends here