import Ġio . go los . com mun 4 j . Build Config Ċ import Ġio . go los . com mun 4 j . model . Auth Type Ċ import Ġio . go los . com mun 4 j . shared model . Either Ċ import Ġio . go los . com mun 4 j . utils . Auth Utils Ċ import Ġjunit . framework . Assert . assertNotNull Ċ import Ġjunit . framework . Assert . assertTrue Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ import Ġjava . util .* Ċ Ċ class ĠRegistration Test Ġ{ ĊĠĠĠ Ġprivate Ġval Ġclient Ġ= ĠgetClient ( setActive User Ġ= Ġfalse , Ġauth In Services Ġ= Ġfalse ) ĊĠĠĠ Ġval Ġun Existing Phone Ġ= Ġgenerate Phone () ĊĠĠĠ Ġprivate Ġval Ġpass Ġ= ĠBuild Config . PHONE _ REG _ KEY ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun Ġbefore () Ġ{ ĊĠĠĠĠĠĠĠ Ġclient . un Auth () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun ĠtestGet State () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstate Ġ= Ġclient . get Registration State ("+ 7 7 3 2 1 7 3 3 7 5 8 4 ", Ġnull ) ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( state Ġis ĠEither . Success ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Acc Creation Through Gate () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġacc Name Ġ= Ġgenerate Random Com mun Name () ĊĊĠĠĠĠĠĠĠ Ġval Ġfirst Step Success Ġ= Ġclient . first User Registration Step (" any 1 2 ", Ġun Existing Phone , Ġpass ) ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( first Step Success Ġis ĠEither . Success ) ĊĊĠĠĠĠĠĠĠ Ġprintln ( first Step Success ) ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( client . get Registration State ( un Existing Phone , Ġnull ) Ġis ĠEither . Success ) ĊĠĠĠĠĠĠĠ Ġval Ġsecond Step Ġ= Ġclient . verify Phone ForUser Registration ( un Existing Phone , Ġ 1 2 3 4 ) ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( second Step Ġis ĠEither . Success ) ĊĊĠĠĠĠĠĠĠ Ġprintln ( client . get Registration State ( un Existing Phone , Ġnull ). get OrThrow ()) ĊĊĠĠĠĠĠĠĠ Ġprintln ( second Step ) ĊĊĠĠĠĠĠĠĠ Ġval Ġthird Step Ġ= Ġclient . set Verified UserName ( acc Name , Ġun Existing Phone , Ġnull ) ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( third Step Ġis ĠEither . Success ) ĊĊĠĠĠĠĠĠĠ Ġprintln ( client . get Registration State ( un Existing Phone , Ġnull ). get OrThrow ()) ĊĊĠĠĠĠĠĠĠ Ġprintln ( third Step ) ĊĊĠĠĠĠĠĠĠ Ġval Ġkeys Ġ= ĠAuth Utils . generate Public Wi Fs ( acc Name , Ġgenerate Pass (), ĠAuth Type . values ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġlast Step Ġ= Ġclient . write User To Block Chain ( un Existing Phone , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthird Step . get OrThrow (). userId . name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġacc Name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkeys [ Auth Type . OWNER ] !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkeys [ Auth Type . ACTIVE ] !! ) ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( last Step Ġis ĠEither . Success ) ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( client . get Registration State ( un Existing Phone , Ġnull ) Ġis ĠEither . Success ) ĊĊĠĠĠĠĠĠĠ ĠassertNotNull ( last Step . get OrThrow (). userId ) ĊĠĠĠĠĠĠĠ ĠassertNotNull ( last Step . get OrThrow (). username ) ĊĊĠĠĠĠĠĠĠ Ġclient . on Board ing Community Subscriptions ( last Step . get OrThrow (). userId , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclient . get Com munities List ( limit Ġ= Ġ 3 ). get OrThrow (). items . map Ġ{ Ġit . community Id Ġ}) ĊĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġgenerate Phone (): ĠString Ġ{ ĊĠĠĠ Ġval Ġsb Ġ= ĠStringBuilder ("+ 7 ") ĊĠĠĠ Ġ( 0 .. 1 0 ). forEach Ġ{ ĊĠĠĠĠĠĠĠ Ġsb . append (( Math . random () Ġ* Ġ 1 0 ). toInt ()) ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġsb . toString () Ċ } Ċ Ċ fun Ġgenerate Pass () Ġ= Ġ( UUID . randomUUID (). toString () Ġ+ ĠUUID . randomUUID (). toString ()). replace ("- ", Ġ"")