package Ġcom . pat res . automation . mapper Ċ Ċ import Ġcom . pat res . automation . action . keyboard . Hold Keyboard Button Action Ċ import Ġcom . pat res . automation . action . keyboard . Press Keyboard Button Action Ċ import Ġcom . pat res . automation . action . keyboard . Release Keyboard Button Action Ċ import Ġcom . pat res . automation . gui . controller . model . Keyboard Button Action Controller Ċ import Ġcom . pat res . automation . helpers . J fx Spec Ċ import Ġcom . pat res . automation . helpers . shouldBe InstanceOf And Check Ċ import Ġcom . pat res . automation . helpers . should Not BeNull And Check Ċ import Ġcom . pat res . automation . keyboard . Keyboard Key Ċ import Ġcom . pat res . automation . mapper . model . Keyboard Field Action Serialized Ċ import Ġcom . pat res . automation . type . Action Boot Keyboard Ċ import Ġio . kot est . matchers . shouldBe Ċ import Ġjavafx . beans . property . Simple Boolean Property ĊĊ Ċ class ĠKeyboard Field Action Mapper Test Ġ: ĠJ fx Spec ({ ĊĊĠĠĠ Ġval Ġm appable Actions Ġ= ĠlistOf ( Action Boot Keyboard . PRESS _ KEY BOARD _ BUTTON , ĠAction Boot Keyboard . H OLD _ KEY BOARD _ BUTTON , ĠAction Boot Keyboard . RELEASE _ KEY BOARD _ BUTTON ) ĊĠĠĠ Ġval Ġtested Keys : ĠList < Keyboard Key > Ġ= ĠlistOf ( Keyboard Key . SHIFT , ĠKeyboard Key . A ) ĊĊĠĠĠ Ġ" Should Ġmap Ġserialized Ġto Ġcontroller " Ġ- Ġ{ ĊĠĠĠĠĠĠĠ Ġm appable Actions . map Ġ{ Ġverified Action : ĠAction Boot Keyboard Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverified Action . name Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġgiven ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġserialized Model Ġ= ĠKeyboard Field Action Serialized ( verified Action , Ġtested Keys ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġwhen ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontroller Ġ= ĠKeyboard Field Action Mapper . serialized To Controller ( serialized Model ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontroller . should Not BeNull And Check Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction Boot ĠshouldBe Ġverified Action ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkeyboard Field . keys ĠshouldBe Ġtested Keys ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ" Should Ġmap Ġserialized Ġto Ġmodel " Ġ- Ġ{ ĊĠĠĠĠĠĠĠ ĠAction Boot Keyboard . PRESS _ KEY BOARD _ BUTTON . name Ġ- Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġgiven ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġserialized Model Ġ= ĠKeyboard Field Action Serialized ( Action Boot Keyboard . PRESS _ KEY BOARD _ BUTTON , Ġtested Keys ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġwhen ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmodel Ġ= ĠKeyboard Field Action Mapper . serialized To Model ( serialized Model , ĠSimple Boolean Property ( false ), Ġempty Set ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodel . shouldBe InstanceOf And Check < Press Keyboard Button Action > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction Boot Type ĠshouldBe ĠAction Boot Keyboard . PRESS _ KEY BOARD _ BUTTON ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkeyboard Keys ĠshouldBe Ġtested Keys ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠAction Boot Keyboard . H OLD _ KEY BOARD _ BUTTON . name Ġ- Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġgiven ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġserialized Model Ġ= ĠKeyboard Field Action Serialized ( Action Boot Keyboard . H OLD _ KEY BOARD _ BUTTON , Ġtested Keys ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġwhen ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmodel Ġ= ĠKeyboard Field Action Mapper . serialized To Model ( serialized Model , ĠSimple Boolean Property ( false ), Ġempty Set ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodel . shouldBe InstanceOf And Check < Hold Keyboard Button Action > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction Boot Type ĠshouldBe ĠAction Boot Keyboard . H OLD _ KEY BOARD _ BUTTON ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkeyboard Keys ĠshouldBe Ġtested Keys ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠAction Boot Keyboard . RELEASE _ KEY BOARD _ BUTTON . name Ġ- Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġgiven ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġserialized Model Ġ= ĠKeyboard Field Action Serialized ( Action Boot Keyboard . RELEASE _ KEY BOARD _ BUTTON , Ġtested Keys ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġwhen ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmodel Ġ= ĠKeyboard Field Action Mapper . serialized To Model ( serialized Model , ĠSimple Boolean Property ( false ), Ġempty Set ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodel . shouldBe InstanceOf And Check < Release Keyboard Button Action > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction Boot Type ĠshouldBe ĠAction Boot Keyboard . RELEASE _ KEY BOARD _ BUTTON ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkeyboard Keys ĠshouldBe Ġtested Keys ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ" Should Ġmap Ġcontroller Ġto Ġserialized " Ġ- Ġ{ ĊĠĠĠĠĠĠĠ Ġm appable Actions . map Ġ{ Ġverified Action : ĠAction Boot Keyboard Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverified Action . name Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġgiven ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontroller Ġ= ĠKeyboard Button Action Controller ( verified Action ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtested Keys . forEach Ġ{ Ġkeyboard Field . add Keyboard Button ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġwhen ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġserialized Ġ= ĠKeyboard Field Action Mapper . controller To Serialized ( controller ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġserialized . should Not BeNull And Check Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction Boot Type ĠshouldBe Ġverified Action ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkeys ĠshouldBe Ġkeys ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ" Should Ġmap Ġcontroller Ġto Ġmodel " Ġ- Ġ{ ĊĠĠĠĠĠĠĠ ĠAction Boot Keyboard . PRESS _ KEY BOARD _ BUTTON . name Ġ- Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġgiven ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontroller Ġ= ĠKeyboard Button Action Controller ( Action Boot Keyboard . PRESS _ KEY BOARD _ BUTTON ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtested Keys . forEach Ġ{ Ġkeyboard Field . add Keyboard Button ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġwhen ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmodel Ġ= ĠKeyboard Field Action Mapper . controller To Model ( controller , ĠSimple Boolean Property ( false ), Ġempty Set ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodel . shouldBe InstanceOf And Check < Press Keyboard Button Action > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction Boot Type ĠshouldBe ĠAction Boot Keyboard . PRESS _ KEY BOARD _ BUTTON ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkeyboard Keys ĠshouldBe Ġtested Keys ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠAction Boot Keyboard . H OLD _ KEY BOARD _ BUTTON . name Ġ- Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġgiven ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontroller Ġ= ĠKeyboard Button Action Controller ( Action Boot Keyboard . H OLD _ KEY BOARD _ BUTTON ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtested Keys . forEach Ġ{ Ġkeyboard Field . add Keyboard Button ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġwhen ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmodel Ġ= ĠKeyboard Field Action Mapper . controller To Model ( controller , ĠSimple Boolean Property ( false ), Ġempty Set ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodel . shouldBe InstanceOf And Check < Hold Keyboard Button Action > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction Boot Type ĠshouldBe ĠAction Boot Keyboard . H OLD _ KEY BOARD _ BUTTON ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkeyboard Keys ĠshouldBe Ġtested Keys ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠAction Boot Keyboard . RELEASE _ KEY BOARD _ BUTTON . name Ġ- Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġgiven ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontroller Ġ= ĠKeyboard Button Action Controller ( Action Boot Keyboard . RELEASE _ KEY BOARD _ BUTTON ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtested Keys . forEach Ġ{ Ġkeyboard Field . add Keyboard Button ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġwhen ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmodel Ġ= ĠKeyboard Field Action Mapper . controller To Model ( controller , ĠSimple Boolean Property ( false ), Ġempty Set ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodel . shouldBe InstanceOf And Check < Release Keyboard Button Action > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction Boot Type ĠshouldBe ĠAction Boot Keyboard . RELEASE _ KEY BOARD _ BUTTON ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkeyboard Keys ĠshouldBe Ġtested Keys ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }) Ċ