package Ġin igo Ċ Ċ import Ġfixed Class Info Ċ import Ġfixed MethodInfo Ċ import Ġin igo . object M other Creator . Java Object M other Template Ċ import Ġin igo . object M other Creator . faker Random String Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġkotlin . test . assertEquals Ċ import Ġkotlin . test . assertFalse Ċ import Ġkotlin . test . assertTrue Ċ Ċ class Ġ` Java Object M other Template Ġshould ` Ġ{ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` build Ġpackage Ġline `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsut Ġ= ĠJava Object M other Template () ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( sut . build Package (" packag ename "). trim (), Ġ" package Ġpack ag ename ; ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` build Ġimport Ġline Ġfor Ġfaker Ġif Ġother Ġclasses Ġar Ġin Ġdifer ent Ġpackage `() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġsut Ġ= ĠJava Object M other Template () ĊĠĠĠĠĠĠĠ Ġval Ġres Ġ= Ġsut . build Imports ( listOf ( fixed MethodInfo ())) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( res , Ġ""" import Ġcom . github . java faker . F aker ; Ċ Ċ import Ġstatic Ġqualified . clazz Name Object M other . random clazz Name ; Ċ Ċ "" ")} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` build Ġclass Ġcode Ġwith Ġdefault Ġconstructor Ġif Ġno Ġconstructors `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsut Ġ= ĠJava Object M other Template () ĊĊĠĠĠĠĠĠĠ Ġval Ġres Ġ= Ġsut . build Class (" className ", ĠlistOf ()) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( res , Ġ""" public Ġclass ĠclassName Object M other { ĊĠ Ġpublic Ġstatic ĠclassName Ġrandom className (){ ĊĠĠĠĠĠĠĠ Ġreturn Ġnew ĠclassName (); ĊĠĠĠ Ġ} Ċ } """) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` build Ġclass Ġcode Ġusing Ġexisting Ġfirst Ġconstructor Ġif Ġany Ġconstructors Ġexist `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsut Ġ= ĠJava Object M other Template () ĊĊĠĠĠĠĠĠĠ Ġval Ġres Ġ= Ġsut . build Class (" className ", ĠlistOf ( fixed MethodInfo ())) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( res , Ġ""" public Ġclass ĠclassName Object M other { ĊĊĠĠĠ Ġpublic Ġstatic ĠclassName Ġrandom className (){ ĊĠĠĠĠĠĠĠ ĠFaker Ġfaker Ġ= Ġnew ĠFaker (); ĊĠĠĠĠĠĠĠ Ġreturn Ġnew ĠclassName ( Ċĉĉĉ ĉ random clazz Name ()); ĊĠĠĠ Ġ} Ċ } """) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` build Ġclass Ġcode Ġusing Ġexisting Ġfirst Ġconstructor Ġif Ġany Ġconstructors Ġexists `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat Work sWith Type (" int ", Ġ" faker . number (). random Digit () ") ĊĠĠĠĠĠĠĠ ĠassertThat Work sWith Type (" Integer ", Ġ" faker . number (). random Digit () ") ĊĠĠĠĠĠĠĠ ĠassertThat Work sWith Type (" long ", Ġ" faker . number (). random Number () ") ĊĠĠĠĠĠĠĠ ĠassertThat Work sWith Type (" Long ", Ġ" faker . number (). random Number () ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` strings Ġare Ġgenerated Ġfrom Ġlist Ġof Ġstrings `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertTrue Ġ{ ĠlistOf (" faker . anc ient (). god ()", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" faker . anc ient (). prim ord ial ()", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" faker . anc ient (). tit an ()", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" faker . artist (). name ()", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" faker . back To The Future (). character ()", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" faker . back To The Future (). quote ()", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" faker . beer (). name ()", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" faker . buff y (). characters ()", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" faker . buff y (). quotes ()", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" faker . ch uck Nor ris (). fact ()", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" faker . dragon Ball (). character ()", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" faker . fun ny Name (). name ()", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" faker . friends (). character ()", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" faker . friends (). quote ()", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" faker . game Of Th ron es (). character ()", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" faker . game Of Th ron es (). quote ()", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" faker . hip ster (). word ()", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" faker . h itch h ik ers Guide To The G alaxy (). character ()", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" faker . h itch h ik ers Guide To The G alaxy (). mar vin Quote ()", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" faker . h itch h ik ers Guide To The G alaxy (). quote ()", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" faker . le bow ski (). quote ()", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" faker . how IM et Your M other (). character ()", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" faker . how IM et Your M other (). catch Phrase ()", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" faker . how IM et Your M other (). high Five ()", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" faker . how IM et Your M other (). quote ()", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" faker . lord Of The R ings (). location ()", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" faker . pr in cess B ride (). quote ()", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" faker . pr in cess B ride (). character ()", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" faker . rick And M ort y (). quote ()", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" faker . rick And M ort y (). character ()", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" faker . slack Emoji (). activity ()", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" faker . super hero (). name ()", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" faker . y oda (). quote () "). contains ( faker Random String ()) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠassertThat Work sWith Type ( type : ĠString , Ġexpected Generator : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsut Ġ= ĠJava Object M other Template () ĊĊĠĠĠĠĠĠĠ Ġval Ġres Ġ= Ġsut . build Class (" className ", ĠlistOf ( fixed MethodInfo ( type ))) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( res , Ġ""" public Ġclass ĠclassName Object M other { ĊĊĠĠĠ Ġpublic Ġstatic ĠclassName Ġrandom className (){ ĊĠĠĠĠĠĠĠ ĠFaker Ġfaker Ġ= Ġnew ĠFaker (); ĊĠĠĠĠĠĠĠ Ġreturn Ġnew ĠclassName ( Ċĉĉĉ ĉ $ expected Generator ); ĊĠĠĠ Ġ} Ċ } """) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` have Ġto Ġreturn Ġneeded Ġobject Ġclasses `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsut Ġ= ĠJava Object M other Template () ĊĊĠĠĠĠĠĠĠ Ġsut . build Class (" className ", ĠlistOf ( fixed MethodInfo ())) ĊĊĠĠĠĠĠĠĠ ĠassertFalse Ġ{ Ġsut . needed Object M other Classes . isEmpty () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` should Ġbuild Ġobject mother Ġwhen Ġasked Ġto `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsut Ġ= ĠJava Object M other Template () ĊĊĠĠĠĠĠĠĠ Ġval Ġres Ġ= Ġsut . build Object M other Code ( fixed Class Info ()) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( res , Ġ""" package Ġpack ag ename ; Ċ Ċ import Ġcom . github . java faker . F aker ; Ċ Ċ public Ġclass Ġclazz name Object M other { ĊĠ Ġpublic Ġstatic Ġclazz name Ġrandom clazz name (){ ĊĠĠĠĠĠĠĠ Ġreturn Ġnew Ġclazz name (); ĊĠĠĠ Ġ} Ċ } """) ĊĠĠĠ Ġ} Ċ } Ċ