Index: pom.xml IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- pom.xml (revision cef7f0979a4f5c0ed092afeaa1dbb5f3cd6293e9) +++ pom.xml (revision 31f85fee0ec35671772d6832468db6bf26d3fb28) @@ -10,8 +10,10 @@ jar - 1.2.10 - 1.7.15-SNAPSHOT + 1.2.20 + 1.7.14 + 4.0.4-alpha + 4.0.4-alpha @@ -35,17 +37,25 @@ io.mockk mockk 1.6.3 + test + + + org.testfx + testfx-core + ${org.testfx.testfx-core.version} test junit junit 4.12 + test - src/main/kotlin + ${project.basedir}/src/main/kotlin + ${project.basedir}/src/test/kotlin org.jetbrains.kotlin Index: src/main/kotlin/no/tornadofx/app/Controllers.kt IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- src/main/kotlin/no/tornadofx/app/Controllers.kt (revision 31f85fee0ec35671772d6832468db6bf26d3fb28) +++ src/main/kotlin/no/tornadofx/app/Controllers.kt (revision 31f85fee0ec35671772d6832468db6bf26d3fb28) @@ -0,0 +1,12 @@ +package no.tornadofx.app + +import javafx.beans.property.SimpleStringProperty +import javafx.collections.FXCollections +import tornadofx.* + +class PersonController : Controller() { + val persons = FXCollections.observableArrayList() + fun allPersons() = persons + + fun count() = persons.size +} Index: src/main/kotlin/no/tornadofx/app/Models.kt IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- src/main/kotlin/no/tornadofx/app/Models.kt (revision 31f85fee0ec35671772d6832468db6bf26d3fb28) +++ src/main/kotlin/no/tornadofx/app/Models.kt (revision 31f85fee0ec35671772d6832468db6bf26d3fb28) @@ -0,0 +1,17 @@ +package no.tornadofx.app + +import javafx.beans.property.SimpleStringProperty +import tornadofx.* + +class Person { + constructor(name: String, address: String) { + this.name = name + this.address = address + } + + val addressProperty = SimpleStringProperty() + var address by addressProperty + val nameProperty = SimpleStringProperty() + var name by nameProperty +} + Index: src/main/kotlin/no/tornadofx/view/MainView.kt IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- src/main/kotlin/no/tornadofx/view/MainView.kt (revision cef7f0979a4f5c0ed092afeaa1dbb5f3cd6293e9) +++ src/main/kotlin/no/tornadofx/view/MainView.kt (revision 31f85fee0ec35671772d6832468db6bf26d3fb28) @@ -1,12 +1,17 @@ package no.tornadofx.view +import no.tornadofx.app.PersonController import no.tornadofx.app.Styles import tornadofx.* class MainView : View("Hello TornadoFX") { + val controller: PersonController by inject() + override val root = hbox { label(title) { addClass(Styles.heading) } } + + fun getCountFromController() = controller.count() } \ No newline at end of file Index: src/test/kotlin/mockexample.kt IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== --- src/test/kotlin/mockexample.kt (revision cef7f0979a4f5c0ed092afeaa1dbb5f3cd6293e9) +++ src/test/kotlin/mockexample.kt (revision 1267a6f1ed4866f1c0b1c7850f3b3e0b3bfc863d) @@ -1,47 +1,36 @@ import io.mockk.every import io.mockk.mockk -import javafx.beans.property.SimpleStringProperty -import javafx.collections.FXCollections +import javafx.stage.Stage +import no.tornadofx.app.Person +import no.tornadofx.app.PersonController +import no.tornadofx.view.MainView import org.junit.Assert import org.junit.Test +import org.testfx.api.FxToolkit import tornadofx.* import kotlin.test.assertEquals -class Person { - constructor(name: String, address: String) { - this.name = name - this.address = address - } - - val addressProperty = SimpleStringProperty() - var address by addressProperty - val nameProperty = SimpleStringProperty() - var name by nameProperty -} - -class PersonController : Controller() { - - val persons = FXCollections.observableArrayList() - fun allPersons() = persons - - fun count() = persons.size -} - -class testclass { - val controller: PersonController = mockk() +class MyTests { + val primaryStage: Stage = FxToolkit.registerPrimaryStage() val testpersons = listOf(Person("Ron", "Best"), Person("Edvin", "dontknow")).observable() + @Test fun test1() { + val controller: PersonController = mockk(relaxed = true) every { controller.count() } returns 10 - Assert.assertEquals(10, controller.count()) + val test1Scope = Scope(controller) + + val mainView = find(test1Scope) + Assert.assertEquals(10, mainView.getCountFromController()) } @Test fun test2() { - every {controller.allPersons()} returns testpersons + val controller: PersonController = mockk() + every { controller.allPersons() } returns testpersons val testList = controller.allPersons() assertEquals(testList.size, 2) Index: .gitignore =================================================================== --- .gitignore (revision cef7f0979a4f5c0ed092afeaa1dbb5f3cd6293e9) +++ .gitignore (revision cef7f0979a4f5c0ed092afeaa1dbb5f3cd6293e9) @@ -1,17 +0,0 @@ -# Created by .ignore support plugin (hsz.mobi) -### Maven template -target/ -pom.xml.tag -pom.xml.releaseBackup -pom.xml.versionsBackup -pom.xml.next -release.properties -dependency-reduced-pom.xml -buildNumber.properties -.mvn/timing.properties - -# Avoid ignoring Maven wrapper jar file (.jar files are usually ignored) -!/.mvn/wrapper/maven-wrapper.jar - -.idea -mokktest.iml \ No newline at end of file