40 lines
1.1 KiB
Clojure
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))
|