package Ġru . ize bit . rest ful . service Ċ Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġru . ize bit . rest ful . data . Account Ċ import Ġjava . util . stream . Int Stream Ċ Ċ /** Ċ Ġ* Ġ@ author Ġ< a Ġhref =" mailto : ize bit @ gmail . com "> Art em ĠK ono val ov </ a > Ġ< br /> Ċ Ġ* ĠDate : Ġ 1 1 . 1 0 . 2 0 1 9 Ċ Ġ*/ ĊĊ Ċ class ĠTransaction Service Test Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Start Transaction () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtransaction Service Ġ= ĠTransaction Service < Int >() ĊĊĠĠĠĠĠĠĠ Ġval Ġfirst Account Ġ= ĠAccount ( 0 , Ġ 1 0 1 . 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġsecond Account Ġ= ĠAccount ( 1 , Ġ 1 0 2 . 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġaccounts Ġ= ĠlistOf ( first Account , Ġsecond Account ) ĊĠĠĠĠĠĠĠ Ġval Ġmoney Ġ= Ġ 1 0 0 L ; ĊĊĠĠĠĠĠĠĠ Ġval Ġcount Ġ= Ġ 1 0 _ 0 0 0 ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠInt Stream . range ( 0 , Ġcount ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. parallel () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġi Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfirst Ġ= Ġaccounts [ i Ġ% Ġ 2 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsecond Ġ= Ġaccounts [( i Ġ+ Ġ 1 ) Ġ% Ġ 2 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction Service . transaction ( first . id , Ġsecond . id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfirst . money Ġ-= Ġmoney ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsecond . money Ġ+= Ġmoney ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. sum () ĊĊĠĠĠĠĠĠĠ Ġassert ( result Ġ== Ġcount ) ĊĠĠĠĠĠĠĠ Ġassert ( first Account . money Ġ== Ġ 1 0 1 . 0 ) Ġ{ Ġfirst Account . toString () Ġ} ĊĠĠĠĠĠĠĠ Ġassert ( second Account . money Ġ== Ġ 1 0 2 . 0 ) Ġ{ Ġsecond Account . toString () Ġ} ĊĠĠĠ Ġ} Ċ }