package Ġnl . delt ad ak . ple p . database Ċ Ċ import Ġnl . delt ad ak . ple p . database . tables . Labels Ċ import Ġorg . jetbrains . ex posed . sql . Schema Utils Ċ import Ġorg . jetbrains . ex posed . sql . delete Where Ċ import Ġorg . jetbrains . ex posed . sql . select Ċ import Ġorg . jetbrains . spe k . api . Spe k Ċ import Ġorg . jetbrains . spe k . api . dsl . given Ċ import Ġorg . jetbrains . spe k . api . dsl . it Ċ import Ġorg . jetbrains . spe k . api . dsl . on Ċ import Ġkotlin . test . assertEquals Ċ Ċ /** Ċ Ġ* ĠTest Ġthe Ġmethods Ġfrom Ġthe Ġ[ Labels ] Ġtable . Ċ Ġ*/ Ċ object ĠLabels Table Test Ġ: ĠSpe k ({ ĊĠĠĠ Ġgiven (" database Ġwith Ġlabels Ġtable ") Ġ{ ĊĠĠĠĠĠĠĠ Ġregular Transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSchema Utils . drop ( Labels ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSchema Utils . create ( Labels ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġon (" inser ting Ġa Ġvalue ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlabel Ġ= Ġ" 2 WA 3 0 " ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLabels . insert ( 0 , Ġlabel ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit (" should Ġbe Ġin Ġthe Ġdatabase , Ġi . e ., Ġwe Ġcan Ġrequest Ġit ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequested : ĠString Ġ= Ġregular Transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLabels . select Ġ{ ĠLabels . id Ġeq Ġ 0 Ġ}. toList (). map Ġ{ Ġit [ Labels . label ] Ġ}. first () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( label , Ġrequested ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġon (" updating Ġa Ġvalue ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnew Label Ġ= Ġ" 2 WA 4 0 " ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLabels . update Or Insert ( 0 , Ġnew Label ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit (" should Ġbe Ġupdated Ġin Ġthe Ġdatabase ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequested : ĠString Ġ= Ġregular Transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLabels . select Ġ{ ĠLabels . id Ġeq Ġ 0 Ġ}. toList (). map Ġ{ Ġit [ Labels . label ] Ġ}. first () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( new Label , Ġrequested ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġon ("' updating ' Ġa Ġlabel Ġthat Ġcurrently Ġis Ġnot Ġin Ġthe Ġdatabase ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnew Label Ġ= Ġ" 2 MM D 2 0 " ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLabels . update Or Insert ( 1 , Ġnew Label ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit (" should Ġinsert Ġthe Ġlabel ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequested : ĠString Ġ= Ġregular Transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLabels . select Ġ{ ĠLabels . id Ġeq Ġ 1 Ġ}. toList (). map Ġ{ Ġit [ Labels . label ] Ġ}. first () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( new Label , Ġrequested ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġon (" de leting Ġa Ġvalue ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregular Transaction Ġ{ ĠLabels . delete Where Ġ{ ĠLabels . id Ġeq Ġ 0 Ġ} Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit (" should Ġnot Ġbe Ġin Ġthe Ġdatabase , Ġi . e ., Ġthe Ġquery Ġfor Ġits Ġid Ġshould Ġbe Ġempty ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġempty Query Ġ= Ġregular Transaction Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLabels . select { ĠLabels . id Ġeq Ġ 0 Ġ}. empty () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġempty Query ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ })