/* Ċ Ġ* ĠCopyright ĠD 3 ĠLed ger , ĠInc . ĠAll ĠRights ĠReserved . Ċ Ġ* ĠSPDX - License - Identifier : ĠApache - 2 . 0 Ċ Ġ*/ Ċ Ċ package Ġintegration . btc Ċ Ċ import Ġcom . d 3 . btc . provider . network . Btc Reg Test Config Provider Ċ import Ġcom . d 3 . btc . wallet . create Wallet If Absent Ċ import Ġcom . d 3 . commons . util . getRandom Id Ċ import Ġintegration . helper . Container Helper Ċ import Ġorg . bitcoin j . wallet . Wallet Ċ import Ġorg . junit . jupiter . api . After All Ċ import Ġorg . junit . jupiter . api . Assertions . assertArrayEquals Ċ import Ġorg . junit . jupiter . api . Assertions . assertTrue Ċ import Ġorg . junit . jupiter . api . Before All Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . junit . jupiter . api . Test Instance Ċ import Ġorg . test containers . containers . Bind Mode Ċ import Ġjava . io . File Ċ Ċ @ Test Instance ( Test Instance . Lifecycle . PER _ CLASS ) Ċ class ĠB tc Address Generation Wallet Rewrite Test Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġcontainer Helper Ġ= ĠContainer Helper () ĊĠĠĠ Ġprivate Ġval Ġdocker file Ġ= Ġ"${ container Helper . user Dir }/ btc - address - generation / build / docker / Dockerfile " ĊĠĠĠ Ġprivate Ġval Ġcontext Folder Ġ= Ġ"${ container Helper . user Dir }/ btc - address - generation / build / docker /" ĊĠĠĠ Ġ// ĠCreate Ġaddress Ġgeneration Ġcontainer ĊĠĠĠ Ġprivate Ġval Ġaddress Generation Container Ġ= Ġcontainer Helper . create S ora Plugin Container ( context Folder , Ġdocker file ) ĊĠĠĠ Ġprivate Ġval Ġtest Wallet s Folder Ġ= Ġ"${ container Helper . user Dir }/ deploy / bitcoin / reg test / test Ġwallet s " ĊĠĠĠ Ġprivate Ġval Ġcontainer Wallet s Folder Ġ= Ġ"/ deploy / bitcoin / reg test " ĊĠĠĠ Ġprivate Ġval Ġwallet Name Ġ= Ġ"${ String . getRandom Id ()}. d 3 . wallet " ĊĊĠĠĠ Ġ@ Before All ĊĠĠĠ Ġfun Ġstart Up () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠCreate Ġwallet Ġfile ĊĠĠĠĠĠĠĠ Ġcreate Wallet If Absent ("$ test Wallet s Folder /$ wallet Name ", ĠB tc Reg Test Config Provider ()) ĊĠĠĠĠĠĠĠ Ġ// ĠMount ĠBitcoin Ġwallet Ġfolder ĊĠĠĠĠĠĠĠ Ġaddress Generation Container . add FileSystem Bind ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtest Wallet s Folder , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontainer Wallet s Folder , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBind Mode . READ _ WRITE ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ// ĠStart ĠI ro ha ĊĠĠĠĠĠĠĠ Ġcontainer Helper . iro ha Container . start () ĊĠĠĠĠĠĠĠ Ġaddress Generation Container . add Env ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" BTC - ADDRESS - GENER ATION _ I RO HA _ HOSTNAME ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontainer Helper . iro ha Container . tor ii Address . host ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġaddress Generation Container . add Env ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" BTC - ADDRESS - GENER ATION _ I RO HA _ PORT ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontainer Helper . iro ha Container . tor ii Address . port . toString () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġaddress Generation Container . add Env ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" BTC - ADDRESS - GENER ATION _ BT CK EY SW ALLE TP ATH ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"$ container Wallet s Folder /$ wallet Name " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ After All ĊĠĠĠ Ġfun ĠtearDown () Ġ{ ĊĠĠĠĠĠĠĠ Ġcontainer Helper . close () ĊĠĠĠĠĠĠĠ Ġaddress Generation Container . stop () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ@ given Ġaddress Ġgeneration Ġservice Ġwith Ġpre - created Ġwallet Ġfile ĊĠĠĠĠ Ġ* Ġ@ when Ġaddress Ġgeneration Ġstarts ĊĠĠĠĠ Ġ* Ġ@ then Ġaddress Ġgeneration Ġservice Ġdoesn 't Ġcreate Ġa Ġnew Ġwallet Ġfile Ġand Ġworks Ġas Ġusual ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Wallet Rewrite () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠWallet Ġfile Ġexists ĊĠĠĠĠĠĠĠ Ġval Ġtest Wallet Path Ġ= Ġ"$ test Wallet s Folder /$ wallet Name " ĊĠĠĠĠĠĠĠ ĠassertTrue ( File ( test Wallet Path ). exists ()) ĊĠĠĠĠĠĠĠ Ġval Ġwallet Ġ= ĠWallet . load FromFile ( File ( test Wallet Path )) ĊĠĠĠĠĠĠĠ Ġ// ĠStart Ġservice ĊĠĠĠĠĠĠĠ Ġaddress Generation Container . start () ĊĠĠĠĠĠĠĠ Ġ// ĠLet Ġservice Ġwork Ġa Ġlittle ĊĠĠĠĠĠĠĠ ĠThread . sleep ( 1 5 _ 0 0 0 ) ĊĠĠĠĠĠĠĠ Ġ// ĠWallet Ġfile Ġis Ġthe Ġsame Ġas Ġbefore ĊĠĠĠĠĠĠĠ Ġassert ArrayEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwallet . key Chain Seed . seed Bytes , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWallet . load FromFile ( File ( test Wallet Path )). key Chain Seed . seed Bytes ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ