package Ġit . ch icio . min es w eeper . field . formatter Ċ Ċ import Ġio . mock k . every Ċ import Ġio . mock k . impl . annotations . Mock K Ċ import Ġio . mock k . junit 5 . Mock K Extension Ċ import Ġio . mock k . verify Ċ import Ġit . ch icio . min es w eeper . Field Factory Ċ import Ġorg . junit . jupiter . api . Assertions . assertEquals Ċ import Ġorg . junit . jupiter . api . BeforeEach Ċ import Ġorg . junit . jupiter . api . DisplayName Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . junit . jupiter . api . extension . Extend With Ċ Ċ @ DisplayName (" Fields Formatter With Header ") Ċ @ Extend With ( Mock K Extension :: class ) Ċ class ĠFields Formatter With Header Test Ġ{ ĊĠĠĠ Ġ@ Mock K ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġfield Formatter : ĠField Formatter ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġfields Formatter With Header : ĠFields Formatter With Header ĊĊĠĠĠ Ġ@ BeforeEach ĊĠĠĠ Ġinternal Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ Ġfields Formatter With Header Ġ= ĠFields Formatter With Header ( field Formatter ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` format Ġfield `() Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġfield Formatter . format ( FIELD ) Ġ} Ġreturns ĠFORM ATT ED _ FIELD ĊĊĠĠĠĠĠĠĠ Ġval Ġfields Formatted : ĠString Ġ= Ġfields Formatter With Header . format ( listOf ( FIELD )) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( FORMAT TED _ FIELD _ WITH _ HEADER , Ġfields Formatted ) ĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġfield Formatter . format ( FIELD ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` format Ġmultiple Ġfields `() Ġ{ ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġfield Formatter . format ( FIELD ) Ġ} Ġreturns ĠFORM ATT ED _ FIELD ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġfield Formatter . format ( AN OTHER _ FIELD ) Ġ} Ġreturns ĠAN OTHER _ FORMAT TED _ FIELD ĊĊĠĠĠĠĠĠĠ Ġval Ġfields Formatted Ġ= Ġfields Formatter With Header . format ( listOf ( FIELD , ĠAN OTHER _ FIELD )) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFORM ATT ED _ FIELD _ WITH _ HEADER Ġ+ ĠSystem . getProperty (" line . separator ") Ġ+ ĠAN OTHER _ FORMAT TED _ FIELD _ WITH _ HEADER , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfields Formatted ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġfield Formatter . format ( FIELD ) Ġ} ĊĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġfield Formatter . format ( AN OTHER _ FIELD ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠFIELD Ġ= ĠField Factory (). make ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ("* ", Ġ" 1 ", Ġ" 0 ", Ġ" 0 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf (" 2 ", Ġ" 2 ", Ġ" 1 ", Ġ" 0 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf (" 1 ", Ġ"*", Ġ" 1 ", Ġ" 0 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf (" 1 ", Ġ" 1 ", Ġ" 1 ", Ġ" 0 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠFORM ATT ED _ FIELD Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ 1 Ġ 0 Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġ 2 Ġ 1 Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ* Ġ 1 Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ 1 Ġ 1 Ġ 0 ĊĠĠĠĠĠĠĠĠ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠFORM ATT ED _ FIELD _ WITH _ HEADER Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ# 1 : ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ 1 Ġ 0 Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġ 2 Ġ 1 Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ* Ġ 1 Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ 1 Ġ 1 Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠAN OTHER _ FIELD Ġ= ĠField Factory (). make ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ("* ", Ġ"*", Ġ" 1 ", Ġ" 0 ", Ġ" 0 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf (" 3 ", Ġ" 3 ", Ġ" 2 ", Ġ" 0 ", Ġ" 0 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf (" 1 ", Ġ"*", Ġ" 1 ", Ġ" 0 ", Ġ" 0 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠAN OTHER _ FORMAT TED _ FIELD Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ* Ġ 1 Ġ 0 Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 3 Ġ 3 Ġ 2 Ġ 0 Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ* Ġ 1 Ġ 0 Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠAN OTHER _ FORMAT TED _ FIELD _ WITH _ HEADER Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ# 2 : ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ* Ġ 1 Ġ 0 Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 3 Ġ 3 Ġ 2 Ġ 0 Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ* Ġ 1 Ġ 0 Ġ 0 ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠ Ġ} Ċ }