package Ġio . kom mon s . design patterns . queue load level ing Ċ Ċ import Ġio . kom mon s . logging . K Logging Ċ import Ġorg . am sh ove . k lu ent . shouldBe True Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġkotlin . concurrent . thread Ċ Ċ class ĠTask Generator Test Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject : ĠK Logging () ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` run Ġtask Ġgenerate Ġand Ġservice Ġexecutor `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmsg Queue Ġ= ĠMessage Queue () ĊĊĠĠĠĠĠĠĠ Ġ// ĠCreate Ġa Ġtask Ġgenerator Ġthread Ġwith Ġ 1 Ġjob Ġto Ġsubmit ĊĠĠĠĠĠĠĠ Ġval Ġtask Generator Ġ= ĠTask Generator ( msg Queue , Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġtask Generation Thread Ġ= Ġthread ( start Ġ= Ġtrue ) Ġ{ Ġtask Generator . invoke () Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠCreate Ġa Ġservice Ġexecutor Ġthread ĊĠĠĠĠĠĠĠ Ġval Ġservice Ġ= ĠService Executor ( msg Queue ) ĊĠĠĠĠĠĠĠ Ġval Ġservice Executor Thread Ġ= Ġthread ( start Ġ= Ġtrue ) Ġ{ Ġservice . invoke () Ġ} ĊĊĠĠĠĠĠĠĠ Ġtask Generation Thread . is Alive . shouldBe True () ĊĠĠĠĠĠĠĠ Ġservice Executor Thread . is Alive . shouldBe True () ĊĠĠĠ Ġ} Ċ }