clojurefx/test/clojurefx/fxml_test.clj

40 lines
1.1 KiB
Clojure

(ns clojurefx.fxml-test
(:require [clojurefx.fxml :as sut]
[clojure.core.async :as async :refer [<! >! chan go go-loop]]
[clojure.test :as t]
[clojure.java.io :as io]
[taoensso.timbre :as timbre
:refer [debug]]))
;
(go (defonce force-toolkit-init (javafx.embed.swing.JFXPanel.)))
(Thread/sleep 500)
(def test1-fxml (io/resource "fxml/exampleWindow.fxml"))
(t/deftest fxml-loading
(t/is (instance? javafx.scene.Node (sut/load-fxml test1-fxml))))
(def test2-fxml (io/resource "fxml/exampleControllerWindow.fxml"))
(t/deftest controller-generation
(t/is (instance? java.lang.Class (sut/generate-controller test2-fxml "a.b/c"))))
(def instance (atom nil))
(def clicked (atom false))
(defn initialize [inst]
(reset! instance inst))
(defn test-1-click [_ e]
(reset! clicked true))
(sut/load-fxml-with-controller test2-fxml "clojurefx.fxml-test/initialize")
(t/deftest proper-init
(t/is (instance? ch.lyrion.Test1 @instance)))
(.fire (.simpleButton @instance))
(t/deftest testfire-result
(t/is @clicked))