package Ġcom . pat ry kk os ier ad z ki . android m vi example . ui Ċ Ċ import Ġandroidx . compose . ui . test . junit 4 . Compose Content Test Rule Ċ import Ġandroidx . compose . ui . test . junit 4 . create Compose Rule Ċ import Ġcom . n ha ar man . mock it ok otlin 2 . mock Ċ import Ġcom . pat ry kk os ier ad z ki . android m vi example . domain . model . Address Ċ import Ġcom . pat ry kk os ier ad z ki . android m vi example . domain . model . Gender Ċ import Ġcom . pat ry kk os ier ad z ki . android m vi example . ui . features . add . Add Employee Contract Ċ import Ġcom . pat ry kk os ier ad z ki . android m vi example . ui . features . add . Add Employee Screen Ċ import Ġcom . pat ry kk os ier ad z ki . android m vi example . ui . features . add . Add Employee ViewModel Ċ import Ġcom . pat ry kk os ier ad z ki . android m vi example . utils . Compose Robot Ċ import Ġcom . pat ry kk os ier ad z ki . android m vi example . utils . Robot Test Ċ import Ġcom . pat ry kk os ier ad z ki . android m vi example . utils . Ui State Ċ import Ġcom . pat ry kk os ier ad z ki . android m vi example . utils . assert Text Displayed Ċ import Ġorg . junit . Rule Ċ import Ġorg . junit . Test Ċ import Ġjava . lang . Exception Ċ Ċ class ĠAdd Employee Screen Test Ġ: ĠRobot Test < Add Employee Screen Test Robot >() Ġ{ ĊĊĠĠĠ Ġ@ get : Rule ĊĠĠĠ Ġval Ġcompose Test Rule Ġ= Ġcreate Compose Rule () ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Show Form On Success State () Ġ{ ĊĠĠĠĠĠĠĠ Ġwith Robot Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstart Screen ( initial Ui State Ġ= ĠUi State . Success ( Add Employee Contract . State ())) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġload G enders () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcapture (" 0 1 _ Add Employee Screen _ Empty _ Form ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfill Form () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcapture (" 0 1 _ Add Employee Screen _ Filled _ Form ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshould Show Error State () Ġ{ ĊĠĠĠĠĠĠĠ Ġwith Robot Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstart Screen ( initial Ui State Ġ= ĠUi State . Failure ( Exception ())) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcapture (" 0 1 _ Add Employee Screen _ Failure ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Text Displayed (" Error Ġoccurred ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Robot () Ġ= ĠAdd Employee Screen Test Robot ( compose Test Rule ) Ċ } Ċ Ċ class ĠAdd Employee Screen Test Robot ( ĊĠĠĠ Ġcompose Test Rule : ĠCompose Content Test Rule Ċ ) Ġ: ĊĠĠĠ ĠCompose Robot < Add Employee Contract . State , ĠAdd Employee Contract . Event , ĠAdd Employee ViewModel >( ĊĠĠĠĠĠĠĠ ĠAdd Employee ViewModel :: class . java , ĊĠĠĠĠĠĠĠ Ġcompose Test Rule ĊĠĠĠ Ġ) Ġ{ ĊĊĠĠĠ Ġfun Ġstart Screen ( initial Ui State : ĠUi State < Add Employee Contract . State >) Ġ{ ĊĠĠĠĠĠĠĠ Ġset ViewModel ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAdd Employee ViewModel ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget G enders UseCase Ġ= Ġmock (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsave Employee UseCase Ġ= Ġmock () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinitial Ui State Ġ= Ġinitial Ui State ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġset Content Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAdd Employee Screen ( viewModel Ġ= Ġit ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġload G enders () Ġ{ ĊĠĠĠĠĠĠĠ Ġset Ui State ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUi State . Success ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAdd Employee Contract . State ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġg enders Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGender ( id Ġ= Ġ 1 , Ġname Ġ= Ġ" Male "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGender ( id Ġ= Ġ 2 , Ġname Ġ= Ġ" Female ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġfill Form () Ġ{ ĊĠĠĠĠĠĠĠ Ġset Ui State ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUi State . Success ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAdd Employee Contract . State ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġg enders Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGender ( id Ġ= Ġ 1 , Ġname Ġ= Ġ" Male "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGender ( id Ġ= Ġ 2 , Ġname Ġ= Ġ" Female ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgender Ġ= Ġ" Male ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠfirstName Ġ= Ġ" John ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlastName Ġ= Ġ" Do e ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaddresses Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAddress ( name Ġ= Ġ" Some Street Ġ 1 / 2 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAddress ( name Ġ= Ġ" Second Street Ġ 4 / 3 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAddress ( name Ġ= Ġ" Super Street Ġ 1 1 / 5 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ }