package Ġdk . cache t . car p . protocols . domain . deployment Ċ Ċ import Ġdk . cache t . car p . common . application . triggers . Task Control Ċ import Ġdk . cache t . car p . common . infrastructure . test . Stub Device Configuration Ċ import Ġdk . cache t . car p . common . infrastructure . test . Stub Primary Device Configuration Ċ import Ġdk . cache t . car p . common . infrastructure . test . Stub Task Configuration Ċ import Ġdk . cache t . car p . common . infrastructure . test . Stub Trigger Configuration Ċ import Ġdk . cache t . car p . protocols . domain . start Ċ import Ġdk . cache t . car p . protocols . infrastructure . test . create Empty Protocol Ċ import Ġkotlin . test .* ĊĊ Ċ /** Ċ Ġ* ĠTests Ġfor Ġ[ Use Composite Task Warning ]. Ċ Ġ*/ Ċ class ĠUse Composite Task Warning Test Ċ { ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġis Issue Present _ true _ when _ multiple _ tasks _ are _ sent _ to _ one _ device _ by _ one _ trigger () ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġprotocol Ġ= Ġcreate Empty Protocol () ĊĠĠĠĠĠĠĠ Ġval Ġdevice Ġ= ĠStub Primary Device Configuration () ĊĠĠĠĠĠĠĠ Ġval Ġtrigger Ġ= ĠStub Trigger Configuration ( Ġdevice Ġ) ĊĠĠĠĠĠĠĠ Ġwith Ġ( Ġprotocol Ġ) ĊĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Primary Device ( Ġdevice Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Task Control ( Ġtrigger , ĠStub Task Configuration ( Ġ" Task Ġ 1 " Ġ), Ġdevice , ĠTask Control . Control . Start Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Task Control ( Ġtrigger , ĠStub Task Configuration ( Ġ" Task Ġ 2 " Ġ), Ġdevice , ĠTask Control . Control . Start Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġwarning Ġ= ĠUse Composite Task Warning () ĊĠĠĠĠĠĠĠ ĠassertTrue ( Ġwarning . is Issue Present ( Ġprotocol Ġ) Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġis Issue Present _ false _ when _ only _ single _ tasks _ are _ triggered _ per _ device () ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġprotocol Ġ= Ġcreate Empty Protocol () ĊĠĠĠĠĠĠĠ Ġval Ġdevice 1 Ġ= ĠStub Primary Device Configuration () ĊĠĠĠĠĠĠĠ Ġval Ġdevice 2 Ġ= ĠStub Device Configuration () ĊĠĠĠĠĠĠĠ Ġval Ġtask Ġ= ĠStub Task Configuration () ĊĠĠĠĠĠĠĠ Ġwith Ġ( Ġprotocol Ġ) ĊĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Primary Device ( Ġdevice 1 Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Connected Device ( Ġdevice 2 , Ġdevice 1 Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtrigger 1 Ġ= ĠStub Trigger Configuration ( Ġdevice 1 Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Task Control ( Ġtrigger 1 . start ( Ġtask , Ġdevice 1 Ġ) Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Task Control ( Ġtrigger 1 . start ( Ġtask , Ġdevice 2 Ġ) Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Task Control ( ĠStub Trigger Configuration ( Ġdevice 2 Ġ). start ( Ġtask , Ġdevice 1 Ġ) Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġwarning Ġ= ĠUse Composite Task Warning () ĊĠĠĠĠĠĠĠ ĠassertFalse ( Ġwarning . is Issue Present ( Ġprotocol Ġ) Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġget Over lapping Tasks _ returns _ all _ over lapping _ tasks () ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġprotocol Ġ= Ġcreate Empty Protocol () ĊĠĠĠĠĠĠĠ Ġval Ġdevice Ġ= ĠStub Primary Device Configuration () ĊĠĠĠĠĠĠĠ Ġval Ġtrigger Ġ= ĠStub Trigger Configuration ( Ġdevice Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġtask 1 Ġ= ĠStub Task Configuration ( Ġ" Task Ġ 1 " Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġtask 2 Ġ= ĠStub Task Configuration ( Ġ" Task Ġ 2 " Ġ) ĊĠĠĠĠĠĠĠ Ġwith Ġ( Ġprotocol Ġ) ĊĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Primary Device ( Ġdevice Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Task Control ( Ġtrigger . start ( Ġtask 1 , Ġdevice Ġ) Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Task Control ( Ġtrigger . start ( Ġtask 2 , Ġdevice Ġ) Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġwarning Ġ= ĠUse Composite Task Warning () ĊĠĠĠĠĠĠĠ Ġval Ġoverlapping Ġ= Ġwarning . get Over lapping Tasks ( Ġprotocol Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġexpected Over lapping Ġ= Ġset Of ( ĠUse Composite Task Warning . Over lapping Tasks ( Ġtrigger , Ġdevice , ĠlistOf ( Ġtask 1 , Ġtask 2 Ġ) Ġ) Ġ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( Ġexpected Over lapping . count (), Ġoverlapping . intersect ( Ġexpected Over lapping Ġ). count () Ġ) ĊĠĠĠ Ġ} Ċ } Ċ