package Ġdesign . card ia . k tx ml . printer Ċ Ċ import Ġassert k . assertThat Ċ import Ġassert k . assertions . contains Ċ import Ġassert k . assertions . startsWith Ċ import Ġdesign . card ia . k tx ml . builder . document Ċ import Ġdesign . card ia . k tx ml . builder . element Ċ import Ġdesign . card ia . k tx ml . model . C data Node Ċ import Ġdesign . card ia . k tx ml . model . Comment Ċ import Ġdesign . card ia . k tx ml . model . Node Ċ import Ġdesign . card ia . k tx ml . model . Processing Instruction Element Ċ import Ġdesign . card ia . k tx ml . model . Text Ċ import Ġdesign . card ia . k tx ml . model . Xml Encoding Ċ import Ġdesign . card ia . k tx ml . model . Xml Version Ċ import Ġorg . junit . jupiter . api . Test Ċ Ċ internal Ġclass ĠXml Printer Test Ġ{ ĊĠĠĠ Ġprivate Ġval Ġelement Printer Ġ= ĠElement Printer () ĊĊĠĠĠ Ġprivate Ġval Ġsubject Ġ= ĠXml Printer ( element Printer ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` prints ĠXML Ġinstruction Ġelement `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdocument Ġ= Ġdocument () ĊĠĠĠĠĠĠĠ Ġval Ġformat Ġ= ĠPretty Format () ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġsubject . print ( document , Ġformat ) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( result ). startsWith (""" <? xml Ġversion =" 1 . 0 " Ġencoding =" UTF - 8 " Ġ?> """) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` prints Ġtext Ġelement `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdocument Ġ= Ġdocument ( Text (" hi ")) ĊĠĠĠĠĠĠĠ Ġval Ġformat Ġ= ĠPretty Format () ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġsubject . print ( document , Ġformat ) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( result ). contains (""" < test > hi </ test > """) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` prints Ġtext Ġelement Ġon Ġnew Ġline `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdocument Ġ= Ġdocument ( Text (" hi ")) ĊĠĠĠĠĠĠĠ Ġval Ġformat Ġ= ĠPretty Format ( text On NewLine Ġ= Ġtrue ) ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġsubject . print ( document , Ġformat ) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( result ). contains ("< test >\ n Ġ Ġhi \ n </ test >") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` prints Ġprocessing Ġinstruction Ġelement `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġelement Ġ= ĠProcessing Instruction Element (" hi "). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" hello " Ġto Ġ" world " ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġdocument Ġ= Ġdocument ( element ) ĊĠĠĠĠĠĠĠ Ġval Ġformat Ġ= ĠPretty Format () ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġsubject . print ( document , Ġformat ) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( result ). contains ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ|< test > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| Ġ Ġ<? hi Ġhello =" world " Ġ?> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| </ test > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Margin () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` prints Ġcomment `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġelement Ġ= ĠComment (" hello ") ĊĊĠĠĠĠĠĠĠ Ġval Ġdocument Ġ= Ġdocument ( element ) ĊĠĠĠĠĠĠĠ Ġval Ġformat Ġ= ĠPretty Format () ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġsubject . print ( document , Ġformat ) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( result ). contains ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ|< test > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| Ġ Ġ<!-- Ġhello Ġ--> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| </ test > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Margin () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` prints ĠC data `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġelement Ġ= ĠC data Node ("< br > hello ") ĊĊĠĠĠĠĠĠĠ Ġval Ġdocument Ġ= Ġdocument ( element ) ĊĠĠĠĠĠĠĠ Ġval Ġformat Ġ= ĠPretty Format () ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġsubject . print ( document , Ġformat ) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( result ). contains ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ|< test > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| Ġ Ġ<![ CDATA [< br > hello ]] > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| </ test > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Margin () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` es cap es ĠC data `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġelement Ġ= ĠC data Node ("< br > hello ]] >") ĊĊĠĠĠĠĠĠĠ Ġval Ġdocument Ġ= Ġdocument ( element ) ĊĠĠĠĠĠĠĠ Ġval Ġformat Ġ= ĠPretty Format () ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġsubject . print ( document , Ġformat ) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( result ). contains ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ|< test > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| Ġ Ġ<![ CDATA [< br > hello ]] & gt ; ]] > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| </ test > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Margin () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` prints Ġcompressed `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġelement Ġ= ĠC data Node ("< br > hello ") ĊĊĠĠĠĠĠĠĠ Ġval Ġdocument Ġ= Ġdocument ( element ) ĊĠĠĠĠĠĠĠ Ġval Ġformat Ġ= ĠComp ressed Format () ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġsubject . print ( document , Ġformat ) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( result ). contains ("< test >< ![ CDATA [< br > hello ]] ></ test >") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdocument ( node : ĠNode ? Ġ= Ġnull , Ġversion : ĠXml Version Ġ= ĠXml Version . V 1 _ 0 , Ġencoding : ĠXml Encoding Ġ= ĠXml Encoding . UTF _ 8 ) Ġ= ĊĠĠĠĠĠĠĠ Ġdocument ( version , Ġencoding ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelement (" test ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnode ?. let (:: add ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ċ } Ċ