package Ġnet . lam gc . scal abot . util Ċ Ċ import Ġcom . google . gson .* Ċ import Ġorg . junit . jupiter . api . assert Throws Ċ import Ġkotlin . test .* Ċ Ċ class ĠUsername Authenticator Test Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġcheck Credentials Test () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġauth enticator Ġ= ĠUsername Authenticator (" test User ", Ġ" test Password ") ĊĠĠĠĠĠĠĠ ĠassertTrue ( auth enticator . check Credentials (" test User ", Ġ" test Password ")) ĊĠĠĠĠĠĠĠ ĠassertFalse ( auth enticator . check Credentials (" false User ", Ġ" test Password ")) ĊĠĠĠĠĠĠĠ ĠassertFalse ( auth enticator . check Credentials (" test User ", Ġ" false Password ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġto JsonObject Test () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġauth enticator Ġ= ĠUsername Authenticator (" test User ", Ġ" test Password ") ĊĠĠĠĠĠĠĠ Ġval ĠjsonObject Ġ= Ġauth enticator . to JsonObject () ĊĠĠĠĠĠĠĠ ĠassertEquals (" test User ", ĠjsonObject [" username "] ?. asString ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" test Password ", ĠjsonObject [" password "] ?. asString ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġequals Test () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġauth enticator Ġ= ĠUsername Authenticator (" test User ", Ġ" test Password ") ĊĠĠĠĠĠĠĠ ĠassertEquals ( auth enticator , ĠUsername Authenticator (" test User ", Ġ" test Password ")) ĊĠĠĠĠĠĠĠ ĠassertEquals ( auth enticator . hashCode (), ĠUsername Authenticator (" test User ", Ġ" test Password "). hashCode ()) ĊĠĠĠĠĠĠĠ Ġassert Not Equals ( auth enticator , ĠUsername Authenticator (" test User ", Ġ" false Password ")) ĊĠĠĠĠĠĠĠ Ġassert Not Equals ( auth enticator . hashCode (), ĠUsername Authenticator (" test User ", Ġ" false Password "). hashCode ()) ĊĠĠĠĠĠĠĠ Ġassert Not Equals ( auth enticator , ĠUsername Authenticator (" false User ", Ġ" test Password ")) ĊĠĠĠĠĠĠĠ Ġassert Not Equals ( auth enticator . hashCode (), ĠUsername Authenticator (" false User ", Ġ" test Password "). hashCode ()) ĊĠĠĠĠĠĠĠ Ġassert Not Equals ( auth enticator , ĠUsername Authenticator (" false User ", Ġ" false Password ")) ĊĠĠĠĠĠĠĠ Ġassert Not Equals ( auth enticator . hashCode (), ĠUsername Authenticator (" false User ", Ġ" false Password "). hashCode ()) ĊĠĠĠĠĠĠĠ ĠassertFalse ( auth enticator . equals ( null )) ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ class ĠUsername Authenticator Serializer Test Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġserialize Test () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġauth enticator Ġ= ĠUsername Authenticator (" test User ", Ġ" test Password ") ĊĠĠĠĠĠĠĠ Ġval Ġjson Element Ġ= ĠUsername Authenticator Serializer . serialize ( auth enticator , Ġnull , Ġnull ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( json Element . is JsonObject ) ĊĠĠĠĠĠĠĠ Ġval ĠjsonObject Ġ= Ġjson Element . as JsonObject ĊĠĠĠĠĠĠĠ ĠassertEquals (" test User ", ĠjsonObject [" username "] ?. asString ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" test Password ", ĠjsonObject [" password "] ?. asString ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġdeserialize Test () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThrows < Json ParseException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUsername Authenticator Serializer . deserialize ( JsonArray (), Ġnull , Ġnull ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠassertThrows < Json ParseException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUsername Authenticator Serializer . deserialize ( Json Primitive (""), Ġnull , Ġnull ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠassertNull ( Username Authenticator Serializer . deserialize ( Json Null . INSTANCE , Ġnull , Ġnull )) ĊĠĠĠĠĠĠĠ ĠassertThrows < Json ParseException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUsername Authenticator Serializer . deserialize ( JsonObject (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Property (" username ", Ġ" test User ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġnull , Ġnull ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠassertThrows < Json ParseException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUsername Authenticator Serializer . deserialize ( JsonObject (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Property (" username ", Ġ" test User ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd (" password ", ĠJson Array ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġnull , Ġnull ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠassertThrows < Json ParseException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUsername Authenticator Serializer . deserialize ( JsonObject (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Property (" password ", Ġ" test Password ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġnull , Ġnull ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠassertThrows < Json ParseException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUsername Authenticator Serializer . deserialize ( JsonObject (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd (" username ", ĠJson Array ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Property (" password ", Ġ" test Password ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġnull , Ġnull ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠassertThrows < Json ParseException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUsername Authenticator Serializer . deserialize ( JsonObject (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Property (" username ", Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Property (" password ", Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġnull , Ġnull ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠassertThrows < Json ParseException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUsername Authenticator Serializer . deserialize ( JsonObject (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Property (" username ", Ġ" test User ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Property (" password ", Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġnull , Ġnull ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠassertThrows < Json ParseException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUsername Authenticator Serializer . deserialize ( JsonObject (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Property (" username ", Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Property (" password ", Ġ" test Password ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġnull , Ġnull ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġauth enticator Ġ= ĠUsername Authenticator Serializer . deserialize ( JsonObject (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Property (" username ", Ġ" test User ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Property (" password ", Ġ" test Password ") ĊĠĠĠĠĠĠĠ Ġ}, Ġnull , Ġnull ) ĊĠĠĠĠĠĠĠ ĠassertNotNull ( auth enticator ) ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( auth enticator . check Credentials (" test User ", Ġ" test Password ")) ĊĠĠĠĠĠĠĠ ĠassertFalse ( auth enticator . check Credentials (" false User ", Ġ" test Password ")) ĊĠĠĠĠĠĠĠ ĠassertFalse ( auth enticator . check Credentials (" test User ", Ġ" false Password ")) ĊĠĠĠ Ġ} Ċ Ċ } Ċ