package Ġplay w rig kt . sk ript . sql . transaction Ċ Ċ import Ġio . kot lint est . shouldBe Ċ import Ġio . kot lint est . specs . String Spec Ċ import Ġplay w rig kt . sk ript . Sk ript Ċ import Ġplay w rig kt . sk ript . tro upe . Sql Tro upe Ċ Ċ class ĠSql Transaction Sk ript Spec Ġ: ĠString Spec () Ġ{ ĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġ" A Ġtransaction al Ġsk ript Ġshould Ġwrap Ġa ĠSql Sk ript Ġin Ġa Ġsk ript " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaction Ġ= ĠSk ript . map < Int , ĠString , ĠSql Tro upe >({ Ġit . toString () Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsk ript Ġ= ĠSql Transaction Sk ript . transaction ( action ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsk ript ĠshouldBe ĠSql Transaction Sk ript . Transactional Sql Transaction Sk ript ( action ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" An Ġauto commit Ġsk ript Ġshould Ġwrap Ġa ĠSql Sk ript Ġin Ġa Ġsk ript " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaction Ġ= ĠSk ript . map < Int , ĠString , ĠSql Tro upe >({ Ġit . toString () Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsk ript Ġ= ĠSql Transaction Sk ript . auto Commit ( action ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsk ript ĠshouldBe ĠSql Transaction Sk ript . Auto Commit SQ l Transaction Sk ript ( action ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" A Ġtransaction al ĠSql Transaction Sk ript Ġshould Ġmap Ġa Ġsql Action Ġwithin Ġthe Ġtransaction " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaction 1 Ġ= ĠSk ript . map < Int , ĠString , ĠSql Tro upe >({ Ġit . toString () Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaction 2 Ġ= ĠSk ript . map < String , ĠLong , ĠSql Tro upe >({ Ġit . to Long () Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsk ript Ġ= ĠSql Transaction Sk ript ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. transaction ( action 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Inside Transaction ( action 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsk ript ĠshouldBe ĠSql Transaction Sk ript . Transactional Sql Transaction Sk ript ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSk ript . Sk ript Link ( action 1 , Ġaction 2 )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" An Ġauto commit ĠSql Transaction Sk ript Ġshould Ġmap Ġa Ġsql Action Ġwithin Ġthe Ġtransaction " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaction 1 Ġ= ĠSk ript . map < Int , ĠString , ĠSql Tro upe >({ Ġit . toString () Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaction 2 Ġ= ĠSk ript . map < String , ĠLong , ĠSql Tro upe >({ Ġit . to Long () Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsk ript Ġ= ĠSql Transaction Sk ript ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. auto Commit ( action 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Inside Transaction ( action 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsk ript ĠshouldBe ĠSql Transaction Sk ript . auto Commit ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSk ript . Sk ript Link ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction 2 )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" A Ġtransaction al ĠSql Transaction Sk ript Ġshould Ġmap Ġa Ġsk ript Ġwithin Ġthe Ġtransaction " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaction 1 Ġ= ĠSk ript . map < Int , ĠString , ĠSql Tro upe >({ Ġit . toString () Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmapped Sk ript Ġ= ĠSk ript . map < String , ĠLong , ĠSql Tro upe > Ġ{ Ġit . to Long () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsk ript Ġ= ĠSql Transaction Sk ript ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. transaction ( action 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Inside Transaction ( mapped Sk ript ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsk ript ĠshouldBe ĠSql Transaction Sk ript . transaction ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSk ript . Sk ript Link ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmapped Sk ript )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" An Ġauto commit ĠSql Transaction Sk ript Ġshould Ġmap Ġa Ġsk ript Ġwithin Ġthe Ġtransaction " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaction 1 Ġ= ĠSk ript . map < Int , ĠString , ĠSql Tro upe >({ Ġit . toString () Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmapped Sk ript Ġ= ĠSk ript . map < String , ĠLong , ĠSql Tro upe > Ġ{ Ġit . to Long () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsk ript Ġ= ĠSql Transaction Sk ript ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. auto Commit ( action 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Inside Transaction ( mapped Sk ript ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsk ript ĠshouldBe ĠSql Transaction Sk ript . auto Commit ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSk ript . Sk ript Link ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmapped Sk ript )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" A Ġtransaction al ĠSql Transaction Sk ript Ġshould Ġunwrap Ġa ĠSql Transaction Sk ript Ġmapped Ġwithin Ġa Ġtransaction " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaction 1 Ġ= ĠSk ript . map < Int , ĠString , ĠSql Tro upe >({ Ġit . toString () Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaction 2 Ġ= ĠSk ript . map < String , ĠLong , ĠSql Tro upe >({ Ġit . to Long () Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsk ript Ġ= ĠSql Transaction Sk ript ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. transaction ( action 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Inside Transaction ( Sql Transaction Sk ript . transaction ( action 2 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsk ript ĠshouldBe ĠSql Transaction Sk ript . transaction ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSk ript . Sk ript Link ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction 2 )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" An Ġauto commit ĠSql Transaction Sk ript Ġshould Ġunwrap Ġa ĠSql Transaction Sk ript Ġmapped Ġwithin Ġa Ġtransaction " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaction 1 Ġ= ĠSk ript . map < Int , ĠString , ĠSql Tro upe >({ Ġit . toString () Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaction 2 Ġ= ĠSk ript . map < String , ĠLong , ĠSql Tro upe >({ Ġit . to Long () Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsk ript Ġ= ĠSql Transaction Sk ript ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. auto Commit ( action 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Inside Transaction ( Sql Transaction Sk ript . transaction ( action 2 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsk ript ĠshouldBe ĠSql Transaction Sk ript . auto Commit ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSk ript . Sk ript Link ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction 2 )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" A Ġtransaction al ĠS Ql Sk ript Ġshould Ġcreate Ġa Ġtransaction Ġfrom Ġa Ġsk ript " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtransaction Ġ= ĠSk ript . map < Int , ĠString , ĠSql Tro upe >({ Ġit . toString () Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsk ript Ġ= ĠSql Transaction Sk ript . transaction ( transaction ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsk ript ĠshouldBe ĠSql Transaction Sk ript . transaction ( transaction ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" An Ġauto commit ĠS Ql Sk ript Ġshould Ġcreate Ġa Ġtransaction Ġfrom Ġa Ġsk ript " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtransaction Ġ= ĠSk ript . map < Int , ĠString , ĠSql Tro upe >({ Ġit . toString () Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsk ript Ġ= ĠSql Transaction Sk ript . auto Commit ( transaction ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsk ript ĠshouldBe ĠSql Transaction Sk ript . auto Commit ( transaction ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" A Ġtransaction al ĠSql Transaction Sk ript Ġshould Ġcreate Ġa Ġtransaction Ġfrom Ġa Ġsk ript Ġand Ġunwrap Ġa ĠSql Transaction Sk ript " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtransaction Ġ= ĠSk ript . map < Int , ĠString , ĠSql Tro upe >({ Ġit . toString () Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsk ript Ġ= ĠSql Transaction Sk ript . transaction ( Sql Transaction Sk ript . transaction ( transaction )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsk ript 2 Ġ= ĠSql Transaction Sk ript . transaction ( Sql Transaction Sk ript . auto Commit ( transaction )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsk ript ĠshouldBe ĠSql Transaction Sk ript . transaction ( transaction ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsk ript 2 ĠshouldBe ĠSql Transaction Sk ript . transaction ( transaction ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ" An Ġauto commit ĠSql Transaction Sk ript Ġshould Ġcreate Ġa Ġtransaction Ġfrom Ġa Ġsk ript Ġand Ġunwrap Ġa ĠSql Transaction Sk ript " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtransaction Ġ= ĠSk ript . map < Int , ĠString , ĠSql Tro upe >({ Ġit . toString () Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsk ript Ġ= ĠSql Transaction Sk ript . auto Commit ( Sql Transaction Sk ript . transaction ( transaction )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsk ript 2 Ġ= ĠSql Transaction Sk ript . auto Commit ( Sql Transaction Sk ript . auto Commit ( transaction )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsk ript ĠshouldBe ĠSql Transaction Sk ript . auto Commit ( transaction ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsk ript 2 ĠshouldBe ĠSql Transaction Sk ript . auto Commit ( transaction ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ