package Ġorg . li be lek tra . key Ċ Ċ import Ġorg . junit . Test Ċ import Ġorg . li be lek tra . Key Ċ import Ġorg . li be lek tra . key Ext . forEach KeyName Ċ import Ġorg . li be lek tra . key Ext . key Of Ċ import Ġorg . li be lek tra . key Ext . or Null Ċ import Ġkotlin . test . assertEquals Ċ Ċ class ĠUtil Test Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` key Of Ġwith Ġname Ġand Ġvalue , Ġreturns Ġcorrect Ġkey `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġkey Ġ= Ġkey Of ("/ test ", Ġ" 1 2 3 4 ") ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( key . name , Ġ"/ test ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( key . string , Ġ" 1 2 3 4 ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` key Of Ġwith Ġname Ġand Ġvalue Ġand Ġmeta Ġkeys , Ġreturns Ġcorrect Ġkey Ġincluding Ġmeta Ġkeys `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġkey Ġ= Ġkey Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"/ test ", Ġ" 1 2 3 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkey Of ("/ meta 1 ", Ġ" value 1 "), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkey Of ("/ meta 2 ", Ġ" value 2 ") ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( key . get Meta ("/ meta 1 "). or Null () !!. string , Ġ" value 1 ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( key . get Meta ("/ meta 2 "). or Null () !!. string , Ġ" value 2 ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` forEach KeyName Ġiter ates Ġcorrectly `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġkey Ġ= ĠKey . create ("/ foo / bar / some / thing ") ĊĊĠĠĠĠĠĠĠ Ġval Ġkey Names Ġ= Ġmutable ListOf < String >() ĊĠĠĠĠĠĠĠ Ġkey . forEach KeyName Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkey Names . add ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( listOf ("\ u 0 0 0 1 ", Ġ" foo ", Ġ" bar ", Ġ" some ", Ġ" thing "), Ġkey Names ) ĊĠĠĠ Ġ} Ċ } Ċ