package Ġorg . si rix . cli . commands Ċ Ċ import Ġorg . junit . jupiter . api . After Each Ċ import Ġorg . junit . jupiter . api . BeforeEach Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . si rix . access . Databases Ċ import Ġorg . si rix . access . Resource Configuration Ċ import Ġorg . si rix . cli . commands . Cli Command Test Constants . Companion . TEST _ COMMIT _ MESSAGE Ċ import Ġorg . si rix . cli . commands . Cli Command Test Constants . Companion . TEST _ RESOURCE Ċ import Ġorg . si rix . cli . commands . Cli Command Test Constants . Companion . TEST _ USER Ċ import Ġorg . si rix . cli . commands . Cli Command Test Constants . Companion . TEST _ XML _ DATA Ċ import Ġorg . si rix . service . xml . sh red der . Xml Sh red der Ċ import Ġorg . sky sc ream er . json assert . JSON Assert Ċ import Ġorg . slf 4 j . Logger Ċ import Ġorg . slf 4 j . LoggerFactory Ċ import Ġjava . io . ByteArray OutputStream Ċ import Ġjava . io . Print Stream Ċ Ċ internal Ġclass ĠDump Resource History Test Ġ: ĠCli Command Test () Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Field ĊĠĠĠĠĠĠĠ Ġval ĠLOGGER : ĠLogger Ġ= ĠLoggerFactory . getLogger ( Dump Resource History Test :: class . java ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ BeforeEach ĊĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ Ġcreate Xml Database () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ After Each ĊĠĠĠ Ġfun ĠtearDown () Ġ{ ĊĠĠĠĠĠĠĠ Ġremove Test Database ( LOGGER ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġhappy Path () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠG IV EN ĊĠĠĠĠĠĠĠ Ġvar Ġdatabase Ġ= ĠDatabase s . open Xml Database ( path (), ĠCli Command Test Constants . TEST _ USER ) ĊĠĠĠĠĠĠĠ Ġdatabase . use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdatabase . create Resource ( Resource Configuration . Builder ( TEST _ RESOURCE ). build ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmanager Ġ= Ġdatabase . open ResourceManager ( TEST _ RESOURCE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmanager . use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġw tx Ġ= Ġmanager . begin Node Tr x () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġw tx . use Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġw tx . insert Sub tree As First Child ( Xml Sh red der . create String Reader ( TEST _ XML _ DATA )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġw tx . commit ( TEST _ COMMIT _ MESSAGE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġdump Resource History Command Ġ= ĠDump Resource History ( give AC li Options (), ĠTEST _ RESOURCE , ĠTEST _ USER ) ĊĊĠĠĠĠĠĠĠ Ġval ĠbyteArray OutputStream Ġ= ĠByteArrayOutputStream () ĊĠĠĠĠĠĠĠ ĠSystem . set Out ( Print Stream ( byteArray OutputStream )) ĊĊĠĠĠĠĠĠĠ Ġ// ĠWHEN ĊĠĠĠĠĠĠĠ Ġdump Resource History Command . execute () ĊĊĠĠĠĠĠĠĠ Ġ// ĠTHEN ĊĠĠĠĠĠĠĠ Ġval Ġexpected History Dump Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{" history ":[{" revision ": 2 ," revision Timestamp ":" 2 0 2 0 - 0 6 - 1 3 T 1 5 : 4 4 : 4 3 . 9 2 2 Z "," author ":" test user "," commit Message ":" This Ġis Ġa Ġtest Ġcommit ĠMessage ." },{" revision ": 1 ," revision Timestamp ":" 2 0 2 0 - 0 6 - 1 3 T 1 5 : 4 4 : 4 3 . 9 2 2 Z "," author ":" test user "," commit Message ": "" }]} ĊĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĊĠĠĠĠĠĠĠ Ġval Ġhistory Dump Ġ= ĠbyteArray OutputStream . toString (). replace ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"\" revision Timestamp \":\" (? ! \" ). + ?\ "" . to Regex (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"\" revision Timestamp \":\" 2 0 2 0 - 0 6 - 1 3 T 1 5 : 4 4 : 4 3 . 9 2 2 Z \"" ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠJSON Assert . assertEquals ( expected History Dump , Ġhistory Dump , Ġfalse ) ĊĠĠĠ Ġ} Ċ } Ċ