package Ġd mit ry . tp o 2 . pages Ċ Ċ import Ġcom . n ha ar man . mock it ok otlin 2 . spy Ċ import Ġcom . n ha ar man . mock it ok otlin 2 . wh enever Ċ import Ġio . kot lint est . specs . String Spec Ċ import Ġorg . junit . Assert . assertNull Ċ import Ġorg . junit . Assert . assertTrue Ċ Ċ class ĠMenu Page Tests Ġ: ĠString Spec ({ ĊĠĠĠ Ġval Ġspy Ġ= Ġspy ( Menu Page ) ĊĊĠĠĠ Ġfun Ġtest MenuItem ( id : ĠInt , Ġrequired Page : ĠAbstract Page ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhenever ( spy . readInt ()). thenReturn ( id ) ĊĠĠĠĠĠĠĠ Ġval Ġpage Ġ= Ġspy . run Interaction Logic () ĊĠĠĠĠĠĠĠ ĠassertTrue (" Page Ġwas Ġ${ page !! :: class . simple Name }", Ġpage :: class Ġ== Ġrequired Page :: class ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ" Track Ġlist Ġpage " Ġ{ ĊĠĠĠĠĠĠĠ Ġtest MenuItem ( 1 , ĠTrack List Page ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ" Search Ġpage " Ġ{ ĊĠĠĠĠĠĠĠ Ġtest MenuItem ( 2 , ĠSearch Page ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ" New Ġtrack Ġpage " Ġ{ ĊĠĠĠĠĠĠĠ Ġtest MenuItem ( 3 , ĠNew Track Page ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ" Delete Ġpage " Ġ{ ĊĠĠĠĠĠĠĠ Ġtest MenuItem ( 4 , ĠDelete Page ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ" Music Ġtrack Ġinfo " Ġ{ ĊĠĠĠĠĠĠĠ Ġtest MenuItem ( 5 , ĠMusic Track Info Page ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ" About Ġpage " Ġ{ ĊĠĠĠĠĠĠĠ Ġtest MenuItem ( 6 , ĠAbout Page ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ" Exit " Ġ{ ĊĠĠĠĠĠĠĠ Ġwhenever ( spy . readInt ()). thenReturn ( 1 0 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġpage Ġ= Ġspy . run Interaction Logic () ĊĠĠĠĠĠĠĠ ĠassertNull ( page ) ĊĠĠĠ Ġ} Ċ })