package Ġio . github . port fol ign o . caffe ine . mult icast . test Ċ Ċ import Ġio . kot lint est . matchers . be Empty Ċ import Ġio . kot lint est . should Ċ import Ġio . kot lint est . shouldBe Ċ import Ġio . kot lint est . specs . String Spec Ċ Ċ class ĠMult icast Cache Loader Spec Ġ: ĠString Spec ({ ĊĠ Ġ" Get Ġempty Ġshould Ġbe Ġempty " Ġ{ ĊĠĠĠ Ġval Ġ( load Counts , Ġresults ) Ġ= ĊĠĠĠĠĠĠĠ Ġload Concurrent ly With Counts ( set Of ()) ĊĊĠĠĠ Ġ// ĠCheck Ġresults ĊĠĠĠ Ġresults . forEach Ġ{ ĊĠĠĠĠĠ Ġ// ĠResults Ġshould Ġbe Ġempty ĊĠĠĠĠĠ Ġit . get (). entries Ġshould Ġbe Empty () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠInner Ġloader Ġis Ġnot Ġcalled ĊĠĠĠ Ġload Counts . get () ĠshouldBe Ġ 0 ĊĠ Ġ} ĊĊĠ Ġ" Get Ġsingleton Ġshould Ġbe Ġsingleton " Ġ{ ĊĠĠĠ Ġval Ġ( load Counts , Ġresults ) Ġ= ĊĠĠĠĠĠĠĠ Ġload Concurrent ly With Counts ( set Of ( 5 )) ĊĊĠĠĠ Ġ// ĠCheck Ġresults ĊĠĠĠ Ġresults . forEach Ġ{ ĊĠĠĠĠĠ Ġ// ĠResults Ġshould Ġbe Ġsingleton ĊĠĠĠĠĠ Ġit . get () ĠshouldBe Ġmap Of ( 5 Ġto Ġ 1 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠThis Ġshould Ġbe Ġfail Ġfor Ġeither Ġa Ġmal function Ġor Ġnot Ġenough Ġwaiting ĊĠĠĠ Ġload Counts . get () ĠshouldBe Ġ 1 ĊĠ Ġ} ĊĊĠ Ġ" Get Ġmultiple Ġkeys Ġshould Ġbe Ġconsistent " Ġ{ ĊĠĠĠ Ġval Ġ( load Counts , Ġresults ) Ġ= ĊĠĠĠĠĠĠĠ Ġload Concurrent ly With Counts ( listOf ( 4 2 , Ġ 4 2 , Ġ 4 4 )) ĊĊĠĠĠ Ġ// ĠCheck Ġresults ĊĠĠĠ Ġresults . reduce Ġ{ Ġa , Ġb Ġ-> ĊĠĠĠĠĠ Ġ// ĠResults Ġshould Ġbe Ġconsistent ĊĠĠĠĠĠ Ġb . get () ĠshouldBe Ġa . get () ĊĠĠĠĠĠ Ġa ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠThis Ġshould Ġfail Ġfor Ġeither Ġa Ġmal function Ġor Ġnot Ġenough Ġwaiting ĊĠĠĠ Ġload Counts . get () ĠshouldBe Ġ 1 ĊĠ Ġ} Ċ }) Ċ