package Ġj ces 1 2 0 9 . vu . action čĊč Ċ import Ġcom . atlassian . performance . tools . jira actions . api . ActionType č Ċ import Ġcom . atlassian . performance . tools . jira actions . api . VIEW _ BOARD č Ċ import Ġcom . atlassian . performance . tools . jira actions . api . action . Action č Ċ import Ġcom . atlassian . performance . tools . jira actions . api . mem ories . Issue Key Memory č Ċ import Ġcom . atlassian . performance . tools . jira actions . api . observation . Issues On Board č Ċ import Ġj ces 1 2 0 9 . vu . Measure č Ċ import Ġj ces 1 2 0 9 . vu . Measure Type č Ċ import Ġj ces 1 2 0 9 . vu . memory . Se eded Memory č Ċ import Ġj ces 1 2 0 9 . vu . page . J ira Tips č Ċ import Ġj ces 1 2 0 9 . vu . page . boards . view . Board Content č Ċ import Ġj ces 1 2 0 9 . vu . page . boards . view . Board Page č Ċ import Ġj ces 1 2 0 9 . vu . page . boards . view . K an ban Board Page č Ċ import Ġj ces 1 2 0 9 . vu . page . context operation . Context Operation Board č Ċ import Ġorg . apache . logging . log 4 j . Log Manager č Ċ import Ġorg . apache . logging . log 4 j . Logger č Ċ import Ġorg . openqa . selenium . WebDriver čĊč Ċ class ĠView Board ( čĊĠĠĠ Ġprivate Ġval Ġdriver : ĠWebDriver , čĊĠĠĠ Ġprivate Ġval Ġmeasure : ĠMeasure , čĊĠĠĠ Ġprivate Ġval Ġboards Memory : ĠSee ded Memory < Board Page >, čĊĠĠĠ Ġprivate Ġval Ġissue Key Memory : ĠIssue Key Memory , čĊĠĠĠ Ġprivate Ġval Ġview Issue Probability : ĠFloat , čĊĠĠĠ Ġprivate Ġval Ġconfigure Board Probability : ĠFloat , čĊĠĠĠ Ġprivate Ġval Ġcontext Operation Probability : ĠFloat , čĊĠĠĠ Ġprivate Ġval Ġchange Issue Status Probability : ĠFloat č Ċ ) Ġ: ĠAction Ġ{ čĊĠĠĠ Ġprivate Ġval Ġlogger : ĠLogger Ġ= ĠLog Manager . getLogger ( this :: class . java ) čĊĠĠĠ Ġprivate Ġval Ġj ira Tips Ġ= ĠJira Tips ( driver ) čĊčĊĠĠĠ Ġoverride Ġfun Ġrun () Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġboard Ġ= Ġboards Memory . recall () čĊĠĠĠĠĠĠĠ Ġif Ġ( board Ġ== Ġnull ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . debug (" I Ġcannot Ġrecall Ġboard , Ġskipping ...") čĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġval Ġboard Type Ġ= Ġboard . getType Label () čĊĠĠĠĠĠĠĠ Ġval Ġboard Content Ġ= Ġview Board ( board Type , Ġboard ) čĊčĊĠĠĠĠĠĠĠ Ġif Ġ( null Ġ!= Ġboard Content ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġmeasure . roll ( view Issue Probability ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( board Content . get Issue Keys (). isEmpty ()) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . debug (" It Ġrequires Ġsome Ġissues Ġon Ġboard Ġto Ġtest Ġpreview Ġissue ") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpreview Issue ( board Type , Ġboard ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext Operation ( board Type ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġj ira Tips . close Tips () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfigure Board ( board Type , Ġboard ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġchange Issue Status ( board ) čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġfun Ġview Board ( board Type : ĠString , Ġboard : ĠBoard Page ): ĠBoard Content ? Ġ{ čĊĠĠĠĠĠĠĠ Ġreturn Ġmeasure . measure ( VIEW _ BOARD ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġmeasure . measure ( ActionType (" View ĠBoard Ġ($ board Type )") Ġ{ ĠUnit Ġ}, čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Sil ent Ġ= Ġfalse , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobservation Ġ= Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġissue Key Memory . remember ( it . get Issue Keys ()) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIssues On Board ( it . get Issue Count ()). serialize () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġboard čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. goTo Board () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. waitFor Board Page To Load () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġfun Ġcontext Operation ( board Type : ĠString ) Ġ{ čĊĠĠĠĠĠĠĠ Ġmeasure . measure ( Measure Type . CONTEXT _ OPERATION _ BOARD , Ġcontext Operation Probability ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġmeasure . measure ( ActionType (" Context Ġoperation Ġ($ board Type Ġboard )") Ġ{ ĠUnit Ġ}, Ġis Sil ent Ġ= Ġfalse ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠContext Operation Board ( driver ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. open () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ? . close () čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġfun Ġpreview Issue ( board Type : ĠString , Ġboard : ĠBoard Page ) Ġ{ čĊĠĠĠĠĠĠĠ Ġj ira Tips . close Tips () čĊĠĠĠĠĠĠĠ Ġmeasure . measure ( Measure Type . ISSUE _ PRE VIEW _ BOARD ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġmeasure . measure ( ActionType (" Preview Ġissue Ġ($ board Type Ġboard )") Ġ{ ĠUnit Ġ}, Ġis Sil ent Ġ= Ġfalse ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġboard . preview Issue () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ? . close Preview Issue () čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġfun Ġconfigure Board ( board Type : ĠString , Ġboard : ĠBoard Page ) Ġ{ čĊĠĠĠĠĠĠĠ Ġmeasure . measure ( Measure Type . CONFIGURE _ BOARD , Ġconfigure Board Probability ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġmeasure . measure ( ActionType ( Measure Type . CONFIGURE _ BOARD . label Ġ+ Ġ" Ġ($ board Type Ġboard )") Ġ{ ĠUnit Ġ}, Ġis Sil ent Ġ= Ġfalse ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġboard čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. configure Board () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. waitFor Load Page () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġfun Ġchange Issue Status ( board : ĠBoard Page ) Ġ{ čĊĠĠĠĠĠĠĠ Ġif Ġ( board Ġis ĠK an ban Board Page ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġmeasure . measure ( Measure Type . MOVE _ ISSUE _ STATUS _ BOARD , Ġchange Issue Status Probability ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmoving Issue Ġ= Ġboard . moving Issue () čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġissue Ġ= Ġmoving Issue . move Issue To Other Column () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( moving Issue . is Modal Window Displayed ()) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( moving Issue . is Continue Button Enabled ()) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmeasure . measure ( Measure Type . MOVE _ ISSUE _ STATUS _ BOARD _ SUBMIT _ WINDOW , Ġis Sil ent Ġ= Ġfalse ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmoving Issue . click Continue Button ( issue ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( moving Issue . is Modal Window Displayed ()) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmoving Issue . close Windows () čĊč ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠerrorMessage Ġ= Ġ" Failed Ġto Ġsubmit Ġissue Ġtransition Ġ[ ${ issue . key }] " čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . debug ( errorMessage ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠInterruptedException ( errorMessage ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmoving Issue . close Windows () čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠerrorMessage Ġ= Ġ" Issue Ġ[ ${ issue . key }] Ġcan 't Ġbe Ġmoved Ġto Ġother Ġcolumn " čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . debug ( errorMessage ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠInterruptedException ( errorMessage ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} č Ċ } čĊ