package Ġorg . dust inl . arg parse 4 k Ċ Ċ import Ġnet . sourceforge . arg parse 4 j . inf . Argument Ċ import Ġorg . dust inl . arg parse 4 k . exception . ArgumentException Ċ import Ġorg . junit . jupiter . api . Assertions .* Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . mockito . Argument Matchers . any Boolean Ċ import Ġorg . mockito . Argument Matchers . any String Ċ import Ġorg . mockito . Mockito Ċ import Ġorg . mockito . Mockito .* Ċ import Ġjava . io . PrintWriter Ċ import Ġjava . io . String Writer Ċ import Ġnet . sourceforge . arg parse 4 j . inf . ArgumentParser Ġas ĠJava Parser Ċ Ċ class ĠParser Test Ġ{ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` flag Ġtest `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġparser Ġ= ĠArgument Parser Impl (" test prog ", ĠarrayOf ("- v ")) ĊĠĠĠĠĠĠĠ Ġval Ġversion Ġby Ġparser . flag ("- v ", Ġhelp Ġ= Ġ" help Ġversion ") ĊĠĠĠĠĠĠĠ Ġval Ġdet ached Ġby Ġparser . flag ("- d ", Ġ"-- det ached ", Ġhelp Ġ= Ġ" fd sf ") ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġversion ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( false , Ġdet ached ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` help Ġtest `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġparser Ġ= ĠArgument Parser Impl (" test prog ", ĠarrayOf ("- h ")) ĊĠĠĠĠĠĠĠ Ġval Ġversion Ġby Ġparser . flag ("- v ", Ġhelp Ġ= Ġ" help Ġversion ") ĊĊĠĠĠĠĠĠĠ Ġval Ġe Ġ= ĠassertThrows ( ArgumentException :: class . java ) Ġ{ Ġversion Ġ} ĊĠĠĠĠĠĠĠ ĠassertTrue ( e . message !!. contains (" help ", Ġignore Case Ġ= Ġtrue )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` value Ġtest `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġparser Ġ= ĠArgument Parser Impl (" test prog ", ĠarrayOf ("- foo ", Ġ" bar ")) ĊĠĠĠĠĠĠĠ Ġval Ġtest Class Ġ= Ġobject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfoo Ġby Ġparser . value ("- foo ", Ġhelp Ġ= Ġ" fo Ġfo Ġfo ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġversion Ġby Ġparser . flag ("- v ", Ġhelp Ġ= Ġ" help Ġversion ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdet ached Ġby Ġparser . flag ("- d ", Ġ"-- det ached ", Ġhelp Ġ= Ġ" fd sf ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( false , Ġtest Class . version ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( false , Ġtest Class . det ached ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" bar ", Ġtest Class . foo ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` value Ġmetavar Ġtest `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġparser Ġ= ĠArgument Parser Impl (" test prog ", ĠarrayOf ("- foo ", Ġ" bar ")) ĊĠĠĠĠĠĠĠ Ġval Ġtest Class Ġ= Ġobject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfoo Ġby Ġparser . value ("- foo ", Ġmetavar Ġ= Ġ" fo ome t av ar ", Ġhelp Ġ= Ġ" fo Ġfo Ġfo ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġversion Ġby Ġparser . flag ("- v ", Ġhelp Ġ= Ġ" help Ġversion ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdet ached Ġby Ġparser . flag ("- d ", Ġ"-- det ached ", Ġhelp Ġ= Ġ" fd sf ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( false , Ġtest Class . version ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( false , Ġtest Class . det ached ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" bar ", Ġtest Class . foo ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( parser . usage (). contains (" fo ome t av ar ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` value Ġrequired Ġmissing Ġtest `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġparser Ġ= ĠArgument Parser Impl (" test prog ", ĠarrayOf ()) ĊĠĠĠĠĠĠĠ Ġval Ġtest Class Ġ= Ġobject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfoo Ġby Ġparser . value ("- foo ", Ġhelp Ġ= Ġ" fo Ġfo Ġfo ", Ġrequired Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertThrows ( ArgumentException :: class . java ) Ġ{ Ġtest Class . foo Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` value Ġmissing Ġand Ġnot Ġrequired Ġtest `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġparser Ġ= ĠArgument Parser Impl (" test prog ", ĠarrayOf ()) ĊĠĠĠĠĠĠĠ Ġval Ġtest Class Ġ= Ġobject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfoo Ġby Ġparser . value ("- foo ", Ġhelp Ġ= Ġ" fo Ġfo Ġfo ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( null , Ġtest Class . foo ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` value Ġargument Ġtest `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġparser Ġ= ĠMockito . mock ( Java Parser :: class . java ) ĊĠĠĠĠĠĠĠ Ġval Ġargument Ġ= ĠMockito . mock ( Argument :: class . java ) ĊĠĠĠĠĠĠĠ Ġ` when `( parser . add Argument ( any String ())). thenReturn ( argument ) ĊĠĠĠĠĠĠĠ Ġ` when `( argument . required ( any Boolean ())). thenReturn ( argument ) ĊĠĠĠĠĠĠĠ Ġval Ġparser Base Ġ= Ġobject : ĠArgument Parser Base ( parser ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġval Ġoptions : ĠOptions Ġ= Ġobject : ĠOptions Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġ< T > Ġget ( name : ĠString ): ĠT Ġ Ġ= ĠlistOf < T >() [ 0 ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġparser Base . value ("- foo ") ĊĠĠĠĠĠĠĠ Ġverify ( argument , Ġnever ()). help ( any String ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` values Ġtest `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġparser Ġ= ĠArgument Parser Impl (" test prog ", ĠarrayOf ("- foo ", Ġ" bar ", Ġ" gg g ")) ĊĠĠĠĠĠĠĠ Ġval Ġtest Class Ġ= Ġobject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfoo Ġby Ġparser . values ("- foo ", Ġhelp Ġ= Ġ" fo Ġfo Ġfo ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertEquals (" bar ", Ġtest Class . foo [ 0 ]) ĊĠĠĠĠĠĠĠ ĠassertEquals (" gg g ", Ġtest Class . foo [ 1 ]) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` values Ġmetavar Ġtest `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġparser Ġ= ĠArgument Parser Impl (" test prog ", ĠarrayOf ("- foo ", Ġ" bar ", Ġ" gg g ")) ĊĠĠĠĠĠĠĠ Ġval Ġtest Class Ġ= Ġobject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfoo Ġby Ġparser . values ("- foo ", Ġhelp Ġ= Ġ" fo Ġfo Ġfo ", Ġmetavar Ġ= Ġ" fo ome tar vars ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertEquals (" bar ", Ġtest Class . foo [ 0 ]) ĊĠĠĠĠĠĠĠ ĠassertEquals (" gg g ", Ġtest Class . foo [ 1 ]) ĊĠĠĠĠĠĠĠ ĠassertTrue ( parser . usage (). contains (" fo ome tar vars ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` values Ġnot Ġrequired Ġmissing Ġtest `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġparser Ġ= ĠArgument Parser Impl (" test prog ", ĠarrayOf ()) ĊĠĠĠĠĠĠĠ Ġval Ġtest Class Ġ= Ġobject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfoo Ġby Ġparser . values ("- foo ", Ġhelp Ġ= Ġ" fo Ġfo Ġfo ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( null , Ġtest Class . foo ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` values Ġrequired Ġmissing Ġtest `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġparser Ġ= ĠArgument Parser Impl (" test prog ", ĠarrayOf ()) ĊĠĠĠĠĠĠĠ Ġval Ġtest Class Ġ= Ġobject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfoo Ġby Ġparser . values ("- foo ", Ġhelp Ġ= Ġ" fo Ġfo Ġfo ", Ġrequired Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertThrows ( ArgumentException :: class . java ) Ġ{ Ġtest Class . foo Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` values Ġargument Ġtest `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġparser Ġ= ĠMockito . mock ( Java Parser :: class . java ) ĊĠĠĠĠĠĠĠ Ġval Ġargument Ġ= ĠMockito . mock ( Argument :: class . java ) ĊĠĠĠĠĠĠĠ Ġ` when `( parser . add Argument ( any String ())). thenReturn ( argument ) ĊĠĠĠĠĠĠĠ Ġ` when `( argument . required ( any Boolean ())). thenReturn ( argument ) ĊĠĠĠĠĠĠĠ Ġ` when `( argument . n args ( any String ())). thenReturn ( argument ) ĊĠĠĠĠĠĠĠ Ġval Ġparser Base Ġ= Ġobject : ĠArgument Parser Base ( parser ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġval Ġoptions : ĠOptions Ġ= Ġobject : ĠOptions Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġ< T > Ġget ( name : ĠString ): ĠT Ġ Ġ= ĠlistOf < T >() [ 0 ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġparser Base . values ("- foo ") ĊĠĠĠĠĠĠĠ Ġverify ( argument , Ġnever ()). help ( any String ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` positional Ġtest `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġparser Ġ= ĠArgument Parser Impl (" test prog ", ĠarrayOf ("- foo ", Ġ" bar ", Ġ" container ")) ĊĠĠĠĠĠĠĠ Ġval Ġtest Class Ġ= Ġobject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfoo Ġby Ġparser . value ("- foo ", Ġhelp Ġ= Ġ" fo Ġfo Ġfo ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġversion Ġby Ġparser . flag ("- v ", Ġhelp Ġ= Ġ" help Ġversion ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdet ached Ġby Ġparser . flag ("- d ", Ġ"-- det ached ", Ġhelp Ġ= Ġ" fd sf ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontainer Ġby Ġparser . positional (" container ", Ġhelp Ġ= Ġ" container Ġname ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( false , Ġtest Class . version ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( false , Ġtest Class . det ached ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" bar ", Ġtest Class . foo ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" container ", Ġtest Class . container ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` positional Ġnot Ġrequired Ġmissing Ġtest `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġparser Ġ= ĠArgument Parser Impl (" test prog ", ĠarrayOf ()) ĊĠĠĠĠĠĠĠ Ġval Ġtest Class Ġ= Ġobject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontainer Ġby Ġparser . positional (" container ", Ġhelp Ġ= Ġ" container Ġname ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( null , Ġtest Class . container ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` positional Ġrequired Ġmissing Ġtest `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġparser Ġ= ĠArgument Parser Impl (" test prog ", ĠarrayOf ()) ĊĠĠĠĠĠĠĠ Ġval Ġtest Class Ġ= Ġobject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontainer Ġby Ġparser . positional (" container ", Ġhelp Ġ= Ġ" container Ġname ", Ġrequired Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertThrows ( ArgumentException :: class . java ) Ġ{ Ġtest Class . container Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` positional Ġargument Ġtest `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġparser Ġ= ĠMockito . mock ( Java Parser :: class . java ) ĊĠĠĠĠĠĠĠ Ġval Ġargument Ġ= ĠMockito . mock ( Argument :: class . java ) ĊĠĠĠĠĠĠĠ Ġ` when `( parser . add Argument ( any String ())). thenReturn ( argument ) ĊĠĠĠĠĠĠĠ Ġ` when `( argument . n args ( any String ())). thenReturn ( argument ) ĊĠĠĠĠĠĠĠ Ġval Ġparser Base Ġ= Ġobject : ĠArgument Parser Base ( parser ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġval Ġoptions : ĠOptions Ġ= Ġobject : ĠOptions Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġ< T > Ġget ( name : ĠString ): ĠT Ġ Ġ= ĠlistOf < T >() [ 0 ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġparser Base . positional (" foo ") ĊĠĠĠĠĠĠĠ Ġverify ( argument , Ġnever ()). help ( any String ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` position als Ġtest `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġparser Ġ= ĠArgument Parser Impl (" test prog ", ĠarrayOf (" bar ", Ġ" container ")) ĊĠĠĠĠĠĠĠ Ġval Ġtest Class Ġ= Ġobject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontainer Ġby Ġparser . position als (" container ", Ġhelp Ġ= Ġ" container Ġname ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertEquals (" bar ", Ġtest Class . container [ 0 ]) ĊĠĠĠĠĠĠĠ ĠassertEquals (" container ", Ġtest Class . container [ 1 ]) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` position als Ġnot Ġrequired Ġbut Ġmissing Ġtest `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġparser Ġ= ĠArgument Parser Impl (" test prog ", ĠarrayOf ()) ĊĠĠĠĠĠĠĠ Ġval Ġtest Class Ġ= Ġobject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontainer Ġby Ġparser . position als (" container ", Ġhelp Ġ= Ġ" container Ġname ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( listOf < String >(), Ġtest Class . container ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` position als Ġrequired Ġbut Ġmissing Ġtest `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġparser Ġ= ĠArgument Parser Impl (" test prog ", ĠarrayOf ()) ĊĠĠĠĠĠĠĠ Ġval Ġtest Class Ġ= Ġobject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontainer Ġby Ġparser . position als (" container ", Ġhelp Ġ= Ġ" container Ġname ", Ġrequired Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertThrows ( ArgumentException :: class . java ) Ġ{ Ġtest Class . container Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` position als Ġargument Ġtest `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġparser Ġ= ĠMockito . mock ( Java Parser :: class . java ) ĊĠĠĠĠĠĠĠ Ġval Ġargument Ġ= ĠMockito . mock ( Argument :: class . java ) ĊĠĠĠĠĠĠĠ Ġ` when `( parser . add Argument ( any String ())). thenReturn ( argument ) ĊĠĠĠĠĠĠĠ Ġ` when `( argument . n args ( any String ())). thenReturn ( argument ) ĊĠĠĠĠĠĠĠ Ġval Ġparser Base Ġ= Ġobject : ĠArgument Parser Base ( parser ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġval Ġoptions : ĠOptions Ġ= Ġobject : ĠOptions Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġ< T > Ġget ( name : ĠString ): ĠT Ġ Ġ= ĠlistOf < T >() [ 0 ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġparser Base . position als (" foo ") ĊĠĠĠĠĠĠĠ Ġverify ( argument , Ġnever ()). help ( any String ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` command Ġtest `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġparser Ġ= ĠArgument Parser Impl (" test prog ", ĠarrayOf (" ccc ", Ġ"- v ")) ĊĠĠĠĠĠĠĠ Ġparser . register Command (" bbb ") ĊĠĠĠĠĠĠĠ Ġval Ġcmd Parser Ġ= Ġparser . register Command (" ccc ") ĊĠĠĠĠĠĠĠ Ġval Ġtest Class Ġ= Ġobject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġverbose Ġby Ġparser . flag ("- v ", Ġhelp Ġ= Ġ" container Ġname ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġtest Class 2 Ġ= Ġobject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġverbose Ġby Ġcmd Parser . flag ("- v ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( false , Ġtest Class . verbose ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġtest Class 2 . verbose ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" ccc ", Ġparser . get Command ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` command Ġun know s Ġtest `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġparser Ġ= ĠArgument Parser Impl (" test prog ", ĠarrayOf (" bbb ", Ġ"- v ")) ĊĠĠĠĠĠĠĠ Ġval Ġcmd Parser Ġ= Ġparser . register Command (" ccc ") ĊĠĠĠĠĠĠĠ Ġval Ġtest Class Ġ= Ġobject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġverbose Ġby Ġparser . flag ("- v ", Ġhelp Ġ= Ġ" container Ġname ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġtest Class 2 Ġ= Ġobject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġverbose Ġby Ġcmd Parser . flag ("- v ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertThrows ( ArgumentException :: class . java ) Ġ{ Ġparser . get Command () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` command Ġmissing Ġtest `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġparser Ġ= ĠArgument Parser Impl (" test prog ", ĠarrayOf ("- v ")) ĊĠĠĠĠĠĠĠ Ġval Ġcmd Parser Ġ= Ġparser . register Command (" ccc ") ĊĠĠĠĠĠĠĠ Ġval Ġtest Class Ġ= Ġobject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġverbose Ġby Ġparser . flag ("- v ", Ġhelp Ġ= Ġ" container Ġname ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġtest Class 2 Ġ= Ġobject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġverbose Ġby Ġcmd Parser . flag ("- v ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertThrows ( ArgumentException :: class . java ) Ġ{ Ġtest Class . verbose Ġ} ĊĠĠĠĠĠĠĠ ĠassertThrows ( ArgumentException :: class . java ) Ġ{ Ġtest Class 2 . verbose Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` description Ġtest `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġparser Ġ= ĠArgument Parser Impl (" test prog ", ĠarrayOf ()) ĊĠĠĠĠĠĠĠ Ġparser . description (" xxxxxxxx x ") ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( parser . usage (). contains (" xxxxxxxx x ")) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` ep ilog Ġtest `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġparser Ġ= ĠArgument Parser Impl (" test prog ", ĠarrayOf ()) ĊĠĠĠĠĠĠĠ Ġparser . ep ilog (" 1 1 1 1 1 1 1 1 1 1 ") ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( parser . usage (). contains (" 1 1 1 1 1 1 1 1 1 1 ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` print Ġerror Ġtest `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġparser Ġ= ĠArgument Parser Impl (" test prog ", ĠarrayOf ("- d ")) ĊĠĠĠĠĠĠĠ Ġval Ġversion Ġby Ġparser . flag ("- v ", Ġhelp Ġ= Ġ" help Ġversion ") ĊĊĠĠĠĠĠĠĠ Ġval Ġe Ġ= ĠassertThrows ( ArgumentException :: class . java ) Ġ{ Ġversion Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġstring Writer Ġ= ĠString Writer () ĊĠĠĠĠĠĠĠ Ġval Ġwriter Ġ= ĠPrintWriter ( string Writer ) ĊĠĠĠĠĠĠĠ Ġparser . print Error ( e , Ġwriter ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( string Writer . toString (). contains ("- d ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` command Ġparser Ġhelp Ġtest `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġparser Ġ= ĠArgument Parser Impl (" test prog ", ĠarrayOf ()) ĊĠĠĠĠĠĠĠ Ġparser . register Command (" COMMAND ") ĊĠĠĠĠĠĠĠ Ġval Ġsub Parser : ĠCommand ArgumentParser ? Ġ= Ġparser . get Command Parser (" COMMAND ") ĊĠĠĠĠĠĠĠ ĠassertNotNull ( sub Parser ) ĊĠĠĠĠĠĠĠ Ġsub Parser !!. help (" xxxxxxxx xx ") ĊĠĠĠĠĠĠĠ Ġprintln ( parser . usage ()) ĊĠĠĠĠĠĠĠ ĠassertTrue ( parser . usage (). contains (" xxxxxxxx xx ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` exception Ġtest `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġparser Ġ= ĠArgument Parser Impl (" test prog ", ĠarrayOf ("- d ")) ĊĠĠĠĠĠĠĠ Ġparser . description (" xxxxxxxx x ") ĊĠĠĠĠĠĠĠ Ġval Ġversion Ġby Ġparser . flag ("- v ", Ġhelp Ġ= Ġ" help Ġversion ") ĊĊĠĠĠĠĠĠĠ Ġval Ġe Ġ= ĠassertThrows ( ArgumentException :: class . java ) Ġ{ Ġversion Ġ} ĊĠĠĠĠĠĠĠ ĠassertTrue ( e . handle ErrorMessage (). contains ("- d ")) ĊĠĠĠĠĠĠĠ ĠassertTrue ( e . help (). contains (" xxxxxxxx x ")) ĊĠĠĠ Ġ} Ċ } Ċ