package Ġcom . so yle . stories . desktop . config . features . scene ĊĊ Ċ import Ġcom . so yle . stories . desktop . config . drivers . scene .* Ċ import Ġcom . so yle . stories . desktop . config . drivers . so yle stories . get Any Open Workbench Or Error Ċ import Ġcom . so yle . stories . desktop . config . drivers . theme . create Symbol And Theme Named Ċ import Ġcom . so yle . stories . desktop . config . drivers . theme . create Symbol WithName Ċ import Ġcom . so yle . stories . desktop . config . drivers . theme . given Creating New Symbol For Theme Ċ import Ġcom . so yle . stories . desktop . config . drivers . theme . given Creating New Theme And Symbol Ċ import Ġcom . so yle . stories . desktop . config . features . so yle St ories Ċ import Ġcom . so yle . stories . domain . scene . Scene Ċ import Ġcom . so yle . stories . domain . theme . Theme Ċ import Ġcom . so yle . stories . scene . scene Symbols . Symbols In Scene Assertions Ċ import Ġio . cucumber . java 8 . En Ċ import Ġorg . junit . jupiter . api . Assertions Ċ import Ġorg . junit . jupiter . api . Assertions .* Ċ Ċ class Ġ` Tracked ĠS ymbols ĠSteps ` Ġ: ĠEn Ġ{ ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġg iv ens () ĊĠĠĠĠĠĠĠ Ġwh ens () ĊĠĠĠĠĠĠĠ Ġth ens () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġg iv ens () Ġ{ ĊĠĠĠĠĠĠĠ ĠGiven (" I Ġam Ġtracking Ġsymbols Ġin Ġthe Ġ{ scene }") Ġ{ Ġscene : ĠScene Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġso yle St ories . get Any Open Workbench Or Error () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. given Symbols In Scene Tool HasBeen Opened () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. given Focused On ( scene ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠGiven ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" I Ġhave Ġpinned Ġthe Ġ{ string } Ġsymbol Ġfrom Ġthe Ġ{ theme } Ġto Ġthe Ġ{ scene }" ĊĠĠĠĠĠĠĠ Ġ) Ġ{ Ġsymbol Name : ĠString , Ġtheme : ĠTheme , Ġscene : ĠScene Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠScene Driver ( so yle St ories . get Any Open Workbench Or Error ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. given Symbol Pin ned In Scene ( scene , Ġtheme , Ġtheme . symbols . find Ġ{ Ġit . name Ġ== Ġsymbol Name Ġ} !! ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġwh ens () Ġ{ ĊĠĠĠĠĠĠĠ ĠWhen ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" I Ġpin Ġthe Ġ{ string } Ġsymbol Ġfrom Ġthe Ġ{ theme } Ġto Ġthe Ġ{ scene }" ĊĠĠĠĠĠĠĠ Ġ) Ġ{ Ġsymbol Name : ĠString , Ġtheme : ĠTheme , Ġscene : ĠScene Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwork bench Ġ= Ġso yle St ories . get Any Open Workbench Or Error () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwork bench . given Symbols In Scene Tool HasBeen Opened () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. given Focused On ( scene ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. pin Symbol ( theme , Ġsymbol Name ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠWhen ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" I Ġun pin Ġthe Ġ{ string } Ġsymbol Ġfrom Ġthe Ġ{ theme } Ġfrom Ġthe Ġ{ scene }" ĊĠĠĠĠĠĠĠ Ġ) Ġ{ Ġsymbol Name : ĠString , Ġtheme : ĠTheme , Ġscene : ĠScene Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwork bench Ġ= Ġso yle St ories . get Any Open Workbench Or Error () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwork bench . given Symbols In Scene Tool HasBeen Opened () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. given Focused On ( scene ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. un pin Symbol ( theme , Ġsymbol Name ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠWhen ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" I Ġcreate Ġa Ġnew Ġsymbol Ġnamed Ġ{ string } Ġin Ġthe Ġ{ theme } Ġto Ġbe Ġpinned Ġin Ġthe Ġ{ scene }" ĊĠĠĠĠĠĠĠ Ġ) Ġ{ Ġsymbol Name : ĠString , Ġtheme : ĠTheme , Ġscene : ĠScene Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwork bench Ġ= Ġso yle St ories . get Any Open Workbench Or Error () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwork bench . given Symbols In Scene Tool HasBeen Opened () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. given Focused On ( scene ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. given Creating New Symbol For Theme ( theme ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. create Symbol WithName ( symbol Name ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠWhen ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" I Ġcreate Ġa Ġnew Ġtheme Ġnamed Ġ{ string } Ġand Ġa Ġnew Ġsymbol Ġnamed Ġ{ string } Ġto Ġbe Ġpinned Ġin Ġthe Ġ{ scene }" ĊĠĠĠĠĠĠĠ Ġ) Ġ{ Ġtheme Name : ĠString , Ġsymbol Name : ĠString , Ġscene : ĠScene Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwork bench Ġ= Ġso yle St ories . get Any Open Workbench Or Error () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwork bench . given Symbols In Scene Tool HasBeen Opened () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. given Focused On ( scene ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. given Creating New Theme And Symbol () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. create Symbol And Theme Named ( theme Name , Ġsymbol Name ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠWhen (" I Ġtrack Ġsymbols Ġin Ġthe Ġ{ scene }") Ġ{ Ġscene : ĠScene Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġso yle St ories . get Any Open Workbench Or Error () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. given Symbols In Scene Tool HasBeen Opened () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. focus On ( scene ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġth ens () Ġ{ ĊĊĠĠĠĠĠĠĠ ĠThen ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" the Ġ{ string } Ġsymbol Ġfor Ġthe Ġ{ theme } Ġshould Ġbe Ġtracked Ġin Ġthe Ġ{ scene }" ĊĠĠĠĠĠĠĠ Ġ) Ġ{ Ġsymbol Name : ĠString , Ġtheme : ĠTheme , Ġscene : ĠScene Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsymbol Ġ= Ġtheme . symbols . find Ġ{ Ġit . name Ġ== Ġsymbol Name Ġ} !! ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( scene . tracked Symbols . is Symbol Tracked ( symbol . id )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( symbol . name , Ġscene . tracked Symbols . get Symbol ById ( symbol . id ) !!. symbol Name ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsymbols In Scene View Ġ= Ġso yle St ories . get Any Open Workbench Or Error () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. given Symbols In Scene Tool HasBeen Opened () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. given Focused On ( scene ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠS ymbols In Scene Assertions . assertThat ( symbols In Scene View ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhas Tracked Symbol ( symbol . id , Ġsymbol . name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠThen ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" the Ġ{ string } Ġsymbol Ġfrom Ġthe Ġ{ theme } Ġshould Ġnot Ġbe Ġtracked Ġin Ġthe Ġ{ scene }" ĊĠĠĠĠĠĠĠ Ġ) Ġ{ Ġsymbol Name : ĠString , Ġtheme : ĠTheme , Ġscene : ĠScene Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsymbol Ġ= Ġtheme . symbols . find Ġ{ Ġit . name Ġ== Ġsymbol Name Ġ} Ġ// Ġif Ġnull , Ġsymbol Ġwas Ġdeleted ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( symbol Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAssertions . assertNull ( scene . tracked Symbols . find Ġ{ Ġit . symbol Name Ġ== Ġsymbol Name Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertFalse ( scene . tracked Symbols . is Symbol Tracked ( symbol . id )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsymbols In Scene View Ġ= Ġso yle St ories . get Any Open Workbench Or Error () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. given Symbols In Scene Tool HasBeen Opened () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. given Focused On ( scene ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠS ymbols In Scene Assertions . assertThat ( symbols In Scene View ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdoes Not Have Tracked Symbol ( symbol ?. id , Ġsymbol Name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠThen ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" the Ġ{ string } Ġsymbol Ġfrom Ġthe Ġ{ theme } Ġshould Ġbe Ġpinned Ġto Ġthe Ġ{ scene }" ĊĠĠĠĠĠĠĠ Ġ) Ġ{ Ġsymbol Name : ĠString , Ġtheme : ĠTheme , Ġscene : ĠScene Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsymbol Ġ= Ġtheme . symbols . find Ġ{ Ġit . name Ġ== Ġsymbol Name Ġ} !! ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( scene . tracked Symbols . is Symbol Tracked ( symbol . id )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( scene . tracked Symbols . get Symbol ById ( symbol . id ) !!. is Pin ned ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsymbols In Scene View Ġ= Ġso yle St ories . get Any Open Workbench Or Error () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. given Symbols In Scene Tool HasBeen Opened () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. given Focused On ( scene ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠS ymbols In Scene Assertions . assertThat ( symbols In Scene View ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhas Tracked Symbol ( symbol . id , Ġsymbol Name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġand Symbol ( symbol . id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Pin ned () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠThen ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" the Ġ{ string } Ġsymbol Ġfrom Ġthe Ġ{ theme } Ġshould Ġnot Ġbe Ġpinned Ġto Ġthe Ġ{ scene }" ĊĠĠĠĠĠĠĠ Ġ) Ġ{ Ġsymbol Name : ĠString , Ġtheme : ĠTheme , Ġscene : ĠScene Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsymbol Ġ= Ġtheme . symbols . find Ġ{ Ġit . name Ġ== Ġsymbol Name Ġ} Ġ// Ġif Ġnull , Ġsymbol Ġwas Ġdeleted ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( symbol Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertNull ( scene . tracked Symbols . find Ġ{ Ġit . symbol Name Ġ== Ġsymbol Name Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( scene . tracked Symbols . is Symbol Tracked ( symbol . id )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertFalse ( scene . tracked Symbols . get Symbol ById ( symbol . id ) !!. is Pin ned ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsymbols In Scene View Ġ= Ġso yle St ories . get Any Open Workbench Or Error () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. given Symbols In Scene Tool HasBeen Opened () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. given Focused On ( scene ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠS ymbols In Scene Assertions . assertThat ( symbols In Scene View ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( symbol Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdoes Not Have Tracked Symbol ( null , Ġsymbol Name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġand Symbol ( symbol . id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Not Pin ned () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠThen ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" the Ġ{ string } Ġsymbol Ġfrom Ġthe Ġ{ theme } Ġpinned Ġto Ġthe Ġ{ scene } Ġshould Ġindicate Ġit Ġis Ġunused " ĊĠĠĠĠĠĠĠ Ġ) Ġ{ Ġsymbol Name : ĠString , Ġtheme : ĠTheme , Ġscene : ĠScene Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsymbol Ġ= Ġtheme . symbols . find Ġ{ Ġit . name Ġ== Ġsymbol Name Ġ} !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsymbols In Scene View Ġ= Ġso yle St ories . get Any Open Workbench Or Error () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. given Symbols In Scene Tool HasBeen Opened () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. given Focused On ( scene ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠS ymbols In Scene Assertions . assertThat ( symbols In Scene View ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġand Symbol ( symbol . id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Unused () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠThen ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" the Ġ{ string } Ġsymbol Ġfrom Ġthe Ġ{ theme } Ġpinned Ġto Ġthe Ġ{ scene } Ġshould Ġnot Ġindicate Ġit Ġis Ġunused " ĊĠĠĠĠĠĠĠ Ġ) Ġ{ Ġsymbol Name : ĠString , Ġtheme : ĠTheme , Ġscene : ĠScene Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsymbol Ġ= Ġtheme . symbols . find Ġ{ Ġit . name Ġ== Ġsymbol Name Ġ} !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsymbols In Scene View Ġ= Ġso yle St ories . get Any Open Workbench Or Error () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. given Symbols In Scene Tool HasBeen Opened () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. given Focused On ( scene ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠS ymbols In Scene Assertions . assertThat ( symbols In Scene View ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġand Symbol ( symbol . id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Used () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }