package Ġcom . squareup . workflow 1 Ċ Ċ import Ġkotlin . test . Test Ċ import Ġkotlin . test . assertEquals Ċ import Ġkotlin . test . assertNotNull Ċ import Ġkotlin . test . assertNull Ċ Ċ @ Opt In ( Experimental Workflow Api :: class ) Ċ class ĠWorkflow Action Test Ġ{ ĊĊĠ Ġ@ Test Ġfun Ġ` apply To Ġworks Ġwhen Ġno Ġoutput Ġis Ġset `() Ġ{ ĊĠĠĠ Ġval Ġaction Ġ= Ġobject Ġ: ĠWorkflow Action < String , ĠString , ĠString ?> () Ġ{ ĊĠĠĠĠĠ Ġoverride Ġfun ĠUp dater . apply () Ġ{ ĊĠĠĠĠĠĠĠ Ġstate Ġ= Ġ" state : Ġ$ state , Ġprops : Ġ$ props " ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġ( state , Ġoutput ) Ġ= Ġaction . apply To (" props ", Ġ" state ") ĊĠĠĠ ĠassertEquals (" state : Ġstate , Ġprops : Ġprops ", Ġstate ) ĊĠĠĠ ĠassertNull ( output ) ĊĠ Ġ} ĊĊĠ Ġ@ Test Ġfun Ġ` apply To Ġworks Ġwhen Ġnull Ġoutput Ġis Ġset `() Ġ{ ĊĠĠĠ Ġval Ġaction Ġ= Ġobject Ġ: ĠWorkflow Action < String , ĠString , ĠString ?> () Ġ{ ĊĠĠĠĠĠ Ġoverride Ġfun ĠUp dater . apply () Ġ{ ĊĠĠĠĠĠĠĠ Ġstate Ġ= Ġ" state : Ġ$ state , Ġprops : Ġ$ props " ĊĠĠĠĠĠĠĠ Ġset Output ( null ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġ( state , Ġoutput ) Ġ= Ġaction . apply To (" props ", Ġ" state ") ĊĠĠĠ ĠassertEquals (" state : Ġstate , Ġprops : Ġprops ", Ġstate ) ĊĠĠĠ ĠassertNotNull ( output ) ĊĠĠĠ ĠassertNull ( output . value ) ĊĠ Ġ} ĊĊĠ Ġ@ Test Ġfun Ġ` apply To Ġworks Ġwhen Ġnon - null Ġoutput Ġis Ġset `() Ġ{ ĊĠĠĠ Ġval Ġaction Ġ= Ġobject Ġ: ĠWorkflow Action < String , ĠString , ĠString ?> () Ġ{ ĊĠĠĠĠĠ Ġoverride Ġfun ĠUp dater . apply () Ġ{ ĊĠĠĠĠĠĠĠ Ġstate Ġ= Ġ" state : Ġ$ state , Ġprops : Ġ$ props " ĊĠĠĠĠĠĠĠ Ġset Output (" output ") ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġ( state , Ġoutput ) Ġ= Ġaction . apply To (" props ", Ġ" state ") ĊĠĠĠ ĠassertEquals (" state : Ġstate , Ġprops : Ġprops ", Ġstate ) ĊĠĠĠ ĠassertNotNull ( output ) ĊĠĠĠ ĠassertEquals (" output ", Ġoutput . value ) ĊĠ Ġ} Ċ } Ċ