import Ġorg . junit . Test Ċ Ċ interface ĠState Ġ{ ĊĊĠĠĠ Ġfun Ġhandle ( context : ĠContext ) Ċ Ċ } Ċ Ċ class ĠContext Ġ{ ĊĊĠĠĠ Ġvar Ġstate : ĠState ? Ġ= Ġnull ĊĊĠĠĠ Ġfun Ġrequest () Ġ{ ĊĠĠĠĠĠĠĠ Ġstate ?. handle ( this ) ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ class ĠStart State Ġ: ĠState Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġhandle ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln (" Start Ġstate ") ĊĠĠĠĠĠĠĠ Ġcontext . state Ġ= Ġthis ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ class ĠStop State Ġ: ĠState Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġhandle ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln (" Stop Ġstate ") ĊĠĠĠĠĠĠĠ Ġcontext . state Ġ= Ġthis ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ class ĠTest State Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest State () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= ĠContext () ĊĊĠĠĠĠĠĠĠ Ġcontext . state Ġ= ĠStart State () ĊĠĠĠĠĠĠĠ Ġcontext . request () ĊĊĠĠĠĠĠĠĠ Ġcontext . state Ġ= ĠStop State () ĊĠĠĠĠĠĠĠ Ġcontext . request () ĊĠĠĠ Ġ} Ċ Ċ }