/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 6 ĠSquare , ĠInc . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* Ġhttps :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġcom . squareup . kotlin po et Ċ Ċ import Ġcom . google . common . truth . Truth . assertThat Ċ import Ġkotlin . test . Test Ċ Ċ class ĠLine Wrapper Test Ġ{ ĊĠ Ġ@ Test Ġfun Ġwrap () Ġ{ ĊĠĠĠ Ġval Ġout Ġ= ĠStringBuffer () ĊĠĠĠ Ġval Ġline Wrapper Ġ= ĠLine Wrapper ( out , Ġ" Ġ Ġ", Ġ 1 0 ) ĊĠĠĠ Ġline Wrapper . append (" abc de Ġf gh ij ", Ġindent Level Ġ= Ġ 2 ) ĊĠĠĠ Ġline Wrapper . close () ĊĠĠĠ ĠassertThat ( out . toString ()). isEqualTo ( ĊĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ| abc de ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġf gh ij ĊĠĠĠĠĠĠĠ Ġ""" . trim Margin () ĊĠĠĠ Ġ) ĊĠ Ġ} ĊĊĠ Ġ@ Test Ġfun Ġno Wrap () Ġ{ ĊĠĠĠ Ġval Ġout Ġ= ĠStringBuffer () ĊĠĠĠ Ġval Ġline Wrapper Ġ= ĠLine Wrapper ( out , Ġ" Ġ Ġ", Ġ 1 0 ) ĊĠĠĠ Ġline Wrapper . append (" abc de Ġf ghi ", Ġindent Level Ġ= Ġ 2 ) ĊĠĠĠ Ġline Wrapper . close () ĊĠĠĠ ĠassertThat ( out . toString ()). isEqualTo (" abc de Ġf ghi ") ĊĠ Ġ} ĊĊĠ Ġ@ Test Ġfun Ġmultiple Write () Ġ{ ĊĠĠĠ Ġval Ġout Ġ= ĠStringBuffer () ĊĠĠĠ Ġval Ġline Wrapper Ġ= ĠLine Wrapper ( out , Ġ" Ġ Ġ", Ġ 1 0 ) ĊĠĠĠ Ġline Wrapper . append (" ab Ġcd Ġef Ġgh Ġij Ġkl Ġmn Ġop Ġqr ", Ġindent Level Ġ= Ġ 1 ) ĊĠĠĠ Ġline Wrapper . close () ĊĠĠĠ ĠassertThat ( out . toString ()). isEqualTo ( ĊĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ| ab Ġcd Ġef ĊĠĠĠĠĠĠĠ Ġ| Ġ Ġgh Ġij Ġkl ĊĠĠĠĠĠĠĠ Ġ| Ġ Ġmn Ġop Ġqr ĊĠĠĠĠĠĠĠ Ġ""" . trim Margin () ĊĠĠĠ Ġ) ĊĠ Ġ} ĊĊĠ Ġ@ Test Ġfun Ġf ence post () Ġ{ ĊĠĠĠ Ġval Ġout Ġ= ĠStringBuffer () ĊĠĠĠ Ġval Ġline Wrapper Ġ= ĠLine Wrapper ( out , Ġ" Ġ Ġ", Ġ 1 0 ) ĊĠĠĠ Ġline Wrapper . append (" abc de ", Ġindent Level Ġ= Ġ 2 ) ĊĠĠĠ Ġline Wrapper . append (" f gh ij Ġk ", Ġindent Level Ġ= Ġ 2 ) ĊĠĠĠ Ġline Wrapper . append (" l mn op ", Ġindent Level Ġ= Ġ 2 ) ĊĠĠĠ Ġline Wrapper . close () ĊĠĠĠ ĠassertThat ( out . toString ()). isEqualTo ( ĊĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ| abcdefgh ij ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġkl mn op ĊĠĠĠĠĠĠĠ Ġ""" . trim Margin () ĊĠĠĠ Ġ) ĊĠ Ġ} ĊĊĠ Ġ@ Test Ġfun Ġover ly Long Lines Without Leading Space () Ġ{ ĊĠĠĠ Ġval Ġout Ġ= ĠStringBuffer () ĊĠĠĠ Ġval Ġline Wrapper Ġ= ĠLine Wrapper ( out , Ġ" Ġ Ġ", Ġ 1 0 ) ĊĠĠĠ Ġline Wrapper . append (" abcdefgh ijkl ", Ġindent Level Ġ= Ġ 2 ) ĊĠĠĠ Ġline Wrapper . close () ĊĠĠĠ ĠassertThat ( out . toString ()). isEqualTo (" abcdefgh ijkl ") ĊĠ Ġ} ĊĊĠ Ġ@ Test Ġfun Ġover ly Long Lines With Leading Space () Ġ{ ĊĠĠĠ Ġval Ġout Ġ= ĠStringBuffer () ĊĠĠĠ Ġval Ġline Wrapper Ġ= ĠLine Wrapper ( out , Ġ" Ġ Ġ", Ġ 1 0 ) ĊĠĠĠ Ġline Wrapper . append (" Ġabc def gh ijkl ", Ġindent Level Ġ= Ġ 2 ) ĊĠĠĠ Ġline Wrapper . close () ĊĠĠĠ ĠassertThat ( out . toString ()). isEqualTo ("\ n ĠĠĠ Ġabc def gh ijkl ") ĊĠ Ġ} ĊĊĠ Ġ@ Test Ġfun Ġno Wrap Embedded New lines () Ġ{ ĊĠĠĠ Ġval Ġout Ġ= ĠStringBuffer () ĊĠĠĠ Ġval Ġline Wrapper Ġ= ĠLine Wrapper ( out , Ġ" Ġ Ġ", Ġ 1 0 ) ĊĠĠĠ Ġline Wrapper . append (" abc de Ġf ghi \ nj kl mn ", Ġindent Level Ġ= Ġ 2 ) ĊĠĠĠ Ġline Wrapper . append (" opq rst uvw xy ", Ġindent Level Ġ= Ġ 2 ) ĊĠĠĠ Ġline Wrapper . close () ĊĠĠĠ ĠassertThat ( out . toString ()). isEqualTo ( ĊĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ| abc de Ġf ghi ĊĠĠĠĠĠĠĠ Ġ| j kl mnopqrst uvw xy ĊĠĠĠĠĠĠĠ Ġ""" . trim Margin () ĊĠĠĠ Ġ) ĊĠ Ġ} ĊĊĠ Ġ@ Test Ġfun Ġwrap Embedded New lines () Ġ{ ĊĠĠĠ Ġval Ġout Ġ= ĠStringBuffer () ĊĠĠĠ Ġval Ġline Wrapper Ġ= ĠLine Wrapper ( out , Ġ" Ġ Ġ", Ġ 1 0 ) ĊĠĠĠ Ġline Wrapper . append (" abc de Ġf gh ij \ n kl mn ", Ġindent Level Ġ= Ġ 2 ) ĊĠĠĠ Ġline Wrapper . append (" opq rst uvw xy ", Ġindent Level Ġ= Ġ 2 ) ĊĠĠĠ Ġline Wrapper . close () ĊĠĠĠ ĠassertThat ( out . toString ()). isEqualTo ( ĊĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ| abc de ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġf gh ij ĊĠĠĠĠĠĠĠ Ġ| kl mnopqrst uvw xy ĊĠĠĠĠĠĠĠ Ġ""" . trim Margin () ĊĠĠĠ Ġ) ĊĠ Ġ} ĊĊĠ Ġ@ Test Ġfun Ġno Wrap Multiple New lines () Ġ{ ĊĠĠĠ Ġval Ġout Ġ= ĠStringBuffer () ĊĠĠĠ Ġval Ġline Wrapper Ġ= ĠLine Wrapper ( out , Ġ" Ġ Ġ", Ġ 1 0 ) ĊĠĠĠ Ġline Wrapper . append (" abc de Ġf ghi \ n kl mnopq \ nr Ġst uvw xyz ", Ġindent Level Ġ= Ġ 2 ) ĊĠĠĠ Ġline Wrapper . close () ĊĠĠĠ ĠassertThat ( out . toString ()). isEqualTo ( ĊĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ| abc de Ġf ghi ĊĠĠĠĠĠĠĠ Ġ| kl mnopq ĊĠĠĠĠĠĠĠ Ġ| r Ġst uvw xyz ĊĠĠĠĠĠĠĠ Ġ""" . trim Margin () ĊĠĠĠ Ġ) ĊĠ Ġ} ĊĊĠ Ġ@ Test Ġfun Ġwrap Multiple New lines () Ġ{ ĊĠĠĠ Ġval Ġout Ġ= ĠStringBuffer () ĊĠĠĠ Ġval Ġline Wrapper Ġ= ĠLine Wrapper ( out , Ġ" Ġ Ġ", Ġ 1 0 ) ĊĠĠĠ Ġline Wrapper . append (" abc de Ġf ghi \ n kl mnopq \ n rs Ġt uvw xyz 1 ", Ġindent Level Ġ= Ġ 2 ) ĊĠĠĠ Ġline Wrapper . close () ĊĠĠĠ ĠassertThat ( out . toString ()). isEqualTo ( ĊĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ| abc de Ġf ghi ĊĠĠĠĠĠĠĠ Ġ| kl mnopq ĊĠĠĠĠĠĠĠ Ġ| rs ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġt uvw xyz 1 ĊĠĠĠĠĠĠĠ Ġ""" . trim Margin () ĊĠĠĠ Ġ) ĊĠ Ġ} ĊĊĠ Ġ@ Test Ġfun Ġno Wrap Pre ced ing Unary Plus () Ġ{ ĊĠĠĠ Ġval Ġout Ġ= ĠStringBuffer () ĊĠĠĠ Ġval Ġline Wrapper Ġ= ĠLine Wrapper ( out , Ġ" Ġ Ġ", Ġ 1 0 ) ĊĠĠĠ Ġline Wrapper . append (" a Ġ+ Ġb ĠĠĠĠĠĠ Ġ+ Ġc ", Ġindent Level Ġ= Ġ 2 ) ĊĠĠĠ Ġline Wrapper . close () ĊĠĠĠ ĠassertThat ( out . toString ()). isEqualTo ( ĊĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ| a Ġ+ ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġb ĠĠĠĠĠĠ Ġ+ ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġc ĊĠĠĠĠĠĠĠ Ġ""" . trim Margin () ĊĠĠĠ Ġ) ĊĠ Ġ} ĊĊĠ Ġ@ Test Ġfun Ġno Wrap Pre ced ing Unary Minus () Ġ{ ĊĠĠĠ Ġval Ġout Ġ= ĠStringBuffer () ĊĠĠĠ Ġval Ġline Wrapper Ġ= ĠLine Wrapper ( out , Ġ" Ġ Ġ", Ġ 1 0 ) ĊĠĠĠ Ġline Wrapper . append (" a Ġ- Ġb ĠĠĠĠĠĠ Ġ- Ġc ", Ġindent Level Ġ= Ġ 2 ) ĊĠĠĠ Ġline Wrapper . close () ĊĠĠĠ ĠassertThat ( out . toString ()). isEqualTo ( ĊĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ| a Ġ- ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġb ĠĠĠĠĠĠ Ġ- ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġc ĊĠĠĠĠĠĠĠ Ġ""" . trim Margin () ĊĠĠĠ Ġ) ĊĠ Ġ} ĊĊĠ Ġ@ Test Ġfun Ġappend Non Wr apping () Ġ{ ĊĠĠĠ Ġval Ġout Ġ= ĠStringBuffer () ĊĠĠĠ Ġval Ġline Wrapper Ġ= ĠLine Wrapper ( out , Ġ" Ġ Ġ", Ġ 1 0 ) ĊĠĠĠ Ġline Wrapper . append (" ab Ġcd Ġef ", Ġindent Level Ġ= Ġ 2 ) ĊĠĠĠ Ġline Wrapper . append Non Wr apping (" gh Ġij Ġkl Ġmn ") ĊĠĠĠ Ġline Wrapper . close () ĊĠĠĠ ĠassertThat ( out . toString ()). isEqualTo ( ĊĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ| ab Ġcd ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġef gh Ġij Ġkl Ġmn ĊĠĠĠĠĠĠĠ Ġ""" . trim Margin () ĊĠĠĠ Ġ) ĊĠ Ġ} ĊĊĠ Ġ@ Test Ġfun Ġappend Non Wr apping Space () Ġ{ ĊĠĠĠ Ġval Ġout Ġ= ĠStringBuffer () ĊĠĠĠ Ġval Ġline Wrapper Ġ= ĠLine Wrapper ( out , Ġ" Ġ Ġ", Ġ 1 0 ) ĊĠĠĠ Ġline Wrapper . append (" ab Ġcd Ġef ", Ġindent Level Ġ= Ġ 2 ) ĊĠĠĠ Ġline Wrapper . append (" gh Â· ij Â· kl Â· mn ", Ġindent Level Ġ= Ġ 2 ) ĊĠĠĠ Ġline Wrapper . close () ĊĠĠĠ ĠassertThat ( out . toString ()). isEqualTo ( ĊĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ| ab Ġcd ĊĠĠĠĠĠĠĠ Ġ| ĠĠĠ Ġef gh Ġij Ġkl Ġmn ĊĠĠĠĠĠĠĠ Ġ""" . trim Margin () ĊĠĠĠ Ġ) ĊĠ Ġ} ĊĊĠ Ġ@ Test Ġfun Ġl one Unsafe Unary Operator () Ġ{ ĊĠĠĠ Ġval Ġout Ġ= ĠStringBuffer () ĊĠĠĠ Ġval Ġline Wrapper Ġ= ĠLine Wrapper ( out , Ġ" Ġ Ġ", Ġ 1 0 ) ĊĠĠĠ Ġline Wrapper . append (" Ġ- 1 ", Ġindent Level Ġ= Ġ 2 ) ĊĠĠĠ Ġline Wrapper . close () ĊĠĠĠ ĠassertThat ( out . toString ()). isEqualTo ( ĊĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ| Ġ- 1 ĊĠĠĠĠĠĠĠ Ġ""" . trim Margin () ĊĠĠĠ Ġ) ĊĠ Ġ} ĊĊĠ Ġ@ Test Ġfun Ġline Prefix () Ġ{ ĊĠĠĠ Ġval Ġout Ġ= ĠStringBuffer () ĊĠĠĠ Ġval Ġline Wrapper Ġ= ĠLine Wrapper ( out , Ġ" Ġ Ġ", Ġ 1 0 ) ĊĠĠĠ Ġline Wrapper . append (" /** \ n ") ĊĠĠĠ Ġline Wrapper . append (" Ġ* Ġ") ĊĠĠĠ Ġline Wrapper . append (" a Ġb Ġc Ġd Ġe Ġf Ġg Ġh Ġi Ġj Ġk Ġl Ġm Ġn \ n ", Ġline Prefix Ġ= Ġ" Ġ* Ġ") ĊĠĠĠ Ġline Wrapper . append (" Ġ*/ ") ĊĠĠĠ Ġline Wrapper . close () ĊĠĠĠ ĠassertThat ( out . toString ()). isEqualTo ( ĊĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ| /** ĊĠĠĠĠĠĠĠ Ġ| Ġ* Ġa Ġb Ġc Ġd ĊĠĠĠĠĠĠĠ Ġ| Ġ* Ġe Ġf Ġg Ġh Ġi Ġj ĊĠĠĠĠĠĠĠ Ġ| Ġ* Ġk Ġl Ġm Ġn ĊĠĠĠĠĠĠĠ Ġ| Ġ*/ ĊĠĠĠĠĠĠĠ Ġ""" . trim Margin () ĊĠĠĠ Ġ) ĊĠ Ġ} Ċ } Ċ