package Ġno . nav . e ess i . pens jon . person op ps lag . p dl Ċ Ċ import Ġcom . fasterxml . jackson . databind . Deserialization Feature Ċ import Ġcom . fasterxml . jackson . datatype . js r 3 1 0 . Java Time Module Ċ import Ġcom . fasterxml . jackson . module . kotlin . jackson ObjectMapper Ċ import Ġio . mock k . every Ċ import Ġio . mock k . mock k Ċ import Ġno . nav . e ess i . pens jon . person op ps lag . p dl . model . Ad resse bes ky tt else Ċ import Ġno . nav . e ess i . pens jon . person op ps lag . p dl . model . Ad resse bes ky tt else B olk Person Ċ import Ġno . nav . e ess i . pens jon . person op ps lag . p dl . model . Ad resse bes ky tt else Gr ader ing Ċ import Ġno . nav . e ess i . pens jon . person op ps lag . p dl . model . Ad resse bes ky tt else Person Ċ import Ġno . nav . e ess i . pens jon . person op ps lag . p dl . model . Ad resse bes ky tt else Response Ċ import Ġno . nav . e ess i . pens jon . person op ps lag . p dl . model . Ak to er Id Ċ import Ġno . nav . e ess i . pens jon . person op ps lag . p dl . model . B ost ed sad resse Ċ import Ġno . nav . e ess i . pens jon . person op ps lag . p dl . model . Do ed sf all Ċ import Ġno . nav . e ess i . pens jon . person op ps lag . p dl . model . End ring Ċ import Ġno . nav . e ess i . pens jon . person op ps lag . p dl . model . End ring stype Ċ import Ġno . nav . e ess i . pens jon . person op ps lag . p dl . model . Error Extension Ċ import Ġno . nav . e ess i . pens jon . person op ps lag . p dl . model . F amil ier el as j ons rol le Ċ import Ġno . nav . e ess i . pens jon . person op ps lag . p dl . model . Fo ed sel Ċ import Ġno . nav . e ess i . pens jon . person op ps lag . p dl . model . F olk ere gister metadata Ċ import Ġno . nav . e ess i . pens jon . person op ps lag . p dl . model . Fore l der B arn Rel as jon Ċ import Ġno . nav . e ess i . pens jon . person op ps lag . p dl . model . Geo graf isk T ilk ny t ning Ċ import Ġno . nav . e ess i . pens jon . person op ps lag . p dl . model . Geo graf isk T ilk ny t ning Response Ċ import Ġno . nav . e ess i . pens jon . person op ps lag . p dl . model . Geo graf isk T ilk ny t ning ResponseData Ċ import Ġno . nav . e ess i . pens jon . person op ps lag . p dl . model . Gt Type Ċ import Ġno . nav . e ess i . pens jon . person op ps lag . p dl . model . H ent Ad resse bes ky tt else Ċ import Ġno . nav . e ess i . pens jon . person op ps lag . p dl . model . H ent Id enter Ċ import Ġno . nav . e ess i . pens jon . person op ps lag . p dl . model . H ent Person Ċ import Ġno . nav . e ess i . pens jon . person op ps lag . p dl . model . H ent Person Response Ċ import Ġno . nav . e ess i . pens jon . person op ps lag . p dl . model . H ent Person ResponseData Ċ import Ġno . nav . e ess i . pens jon . person op ps lag . p dl . model . Ident Grup pe . AK TOR ID Ċ import Ġno . nav . e ess i . pens jon . person op ps lag . p dl . model . Ident Grup pe . FOL KER EG ISTER IDENT Ċ import Ġno . nav . e ess i . pens jon . person op ps lag . p dl . model . Ident Grup pe . NP ID Ċ import Ġno . nav . e ess i . pens jon . person op ps lag . p dl . model . Ident Inform as jon Ċ import Ġno . nav . e ess i . pens jon . person op ps lag . p dl . model . Ident Type Ċ import Ġno . nav . e ess i . pens jon . person op ps lag . p dl . model . Id enter Data Response Ċ import Ġno . nav . e ess i . pens jon . person op ps lag . p dl . model . Id enter Response Ċ import Ġno . nav . e ess i . pens jon . person op ps lag . p dl . model . K jo enn Ċ import Ġno . nav . e ess i . pens jon . person op ps lag . p dl . model . K jo enn Type Ċ import Ġno . nav . e ess i . pens jon . person op ps lag . p dl . model . Kont akt ad resse Ċ import Ġno . nav . e ess i . pens jon . person op ps lag . p dl . model . Kont akt inform as jon For Do eds bo Ċ import Ġno . nav . e ess i . pens jon . person op ps lag . p dl . model . Metadata Ċ import Ġno . nav . e ess i . pens jon . person op ps lag . p dl . model . Nav n Ċ import Ġno . nav . e ess i . pens jon . person op ps lag . p dl . model . N ors k Ident Ċ import Ġno . nav . e ess i . pens jon . person op ps lag . p dl . model . N pid Ċ import Ġno . nav . e ess i . pens jon . person op ps lag . p dl . model . Opp holds ad resse Ċ import Ġno . nav . e ess i . pens jon . person op ps lag . p dl . model . ResponseError Ċ import Ġno . nav . e ess i . pens jon . person op ps lag . p dl . model . S ivil stand Ċ import Ġno . nav . e ess i . pens jon . person op ps lag . p dl . model . S ivil stand stype Ċ import Ġno . nav . e ess i . pens jon . person op ps lag . p dl . model . S ok K riter ier Ċ import Ġno . nav . e ess i . pens jon . person op ps lag . p dl . model . S ok Person Response Ċ import Ġno . nav . e ess i . pens jon . person op ps lag . p dl . model . Stats b org ers kap Ċ import Ġno . nav . e ess i . pens jon . person op ps lag . p dl . model . V eg ad resse Ċ import Ġorg . junit . jupiter . api . Assertions . assertEquals Ċ import Ġorg . junit . jupiter . api . Assertions . assertFalse Ċ import Ġorg . junit . jupiter . api . Assertions . assertTrue Ċ import Ġorg . junit . jupiter . api . Before All Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . junit . jupiter . api . Test Instance Ċ import Ġorg . junit . jupiter . api . Test Instance . Lifecycle Ċ import Ġorg . junit . jupiter . api . assert Throws Ċ import Ġjava . time . LocalDate Ċ import Ġjava . time . LocalDateTime Ċ Ċ @ Test Instance ( Lifecycle . PER _ CLASS ) Ċ internal Ġclass ĠPerson Service Test Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġclient Ġ= Ġmock k < Person Client >() ĊĊĠĠĠ Ġprivate Ġval Ġservice : ĠPerson Service Ġ= ĠPerson Service ( client ) ĊĊĠĠĠ Ġ@ Before All ĊĠĠĠ Ġfun Ġbefore All () Ġ{ ĊĠĠĠĠĠĠĠ Ġservice . init Metrics () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġmock Meta ( regist r ert : ĠLocalDateTime Ġ= ĠLocalDateTime . of ( 2 0 1 0 , Ġ 4 , 1 , Ġ 1 0 , Ġ 2 , Ġ 1 4 )): ĠMetadata Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġno . nav . e ess i . pens jon . person op ps lag . p dl . model . Metadata ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEnd ring ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" TEST ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġregist r ert , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Test ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" K ilde Ġtest ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEnd ring stype . OP PRE TT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ)), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Test ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" ac be 1 a 4 6 - e 3 d 1 " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġh ent Person () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġp dl Person Ġ= Ġcreate H ent Person ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġad resse bes ky tt else Ġ= ĠlistOf ( Ad resse bes ky tt else ( Ad resse bes ky tt else Gr ader ing . U GRAD ERT )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnav n Ġ= ĠlistOf ( Nav n (" For nav n ", Ġ" Mel lom nav n ", Ġ" Et tern av n ", Ġ" EM F ", Ġnull , Ġnull , Ġmock Meta ())) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠ Ġval Ġid enter Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIdent Inform as jon (" 2 5 0 7 8 5 2 1 4 9 2 ", ĠFOL KER EG ISTER IDENT ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIdent Inform as jon (" 1 0 0 0 0 0 0 0 0 0 0 0 0 5 3 ", ĠA KT OR ID ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġgt Ġ= ĠGeo graf isk T ilk ny t ning ( Gt Type . KO MM UNE , Ġ" 0 3 0 1 ", Ġnull , Ġnull ) ĊĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġclient . h ent Person ( any ()) Ġ} Ġreturns ĠH ent Person Response ( H ent Person ResponseData ( p dl Person )) ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġclient . h ent Id enter ( any ()) Ġ} Ġreturns ĠId enter Response ( Id enter Data Response ( H ent Id enter ( id enter ))) ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġclient . h ent Geo graf isk T ilk ny t ning ( any ()) Ġ} Ġreturns ĠGeo graf isk T ilk ny t ning Response ( Geo graf isk T ilk ny t ning ResponseData ( gt )) ĊĊĠĠĠĠĠĠĠ Ġval Ġresult at Ġ= Ġservice . h ent Person ( N ors k Ident (" 1 2 3 4 5 ")) ĊĊĠĠĠĠĠĠĠ Ġval Ġnav n Ġ= Ġresult at !!. nav n !! ĊĠĠĠĠĠĠĠ ĠassertEquals (" For nav n ", Ġnav n . for nav n ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" Mel lom nav n ", Ġnav n . mel lom nav n ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" Et tern av n ", Ġnav n . et tern av n ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( gt , Ġresult at . geo graf isk T ilk ny t ning ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġresult at . ad resse bes ky tt else . size ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 2 , Ġresult at . id enter . size ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġh ent Alt Person () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġp dl Person Ġ= ĠH ent Person ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġad resse bes ky tt else Ġ= ĠlistOf ( Ad resse bes ky tt else ( Ad resse bes ky tt else Gr ader ing . U GRAD ERT )), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġb ost ed sad resse Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠB ost ed sad resse ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLocalDateTime . of ( 2 0 2 0 , Ġ 1 0 , Ġ 5 , Ġ 1 0 , 5 , 2 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLocalDateTime . of ( 2 0 3 0 , Ġ 1 0 , Ġ 5 , Ġ 1 0 , Ġ 5 , Ġ 2 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠV eg ad resse (" TEST VE I EN "," 1 0 2 0 "," A "," 0 2 3 4 ", Ġ" 2 3 1 ", Ġnull ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmock Meta () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġopp holds ad resse Ġ= Ġempty List (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnav n Ġ= ĠlistOf ( Nav n (" For nav n ", Ġ" Mel lom nav n ", Ġ" Et tern av n ", Ġnull , Ġnull , Ġnull , Ġmock Meta ())), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstats b org ers kap Ġ= ĠlistOf ( Stats b org ers kap (" NOR ", ĠLocalDate . of ( 2 0 1 0 , Ġ 7 , 7 ), ĠLocalDate . of ( 2 0 2 0 , Ġ 1 0 , Ġ 1 0 ), Ġmock Meta ())), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfo ed sel Ġ= ĠlistOf ( Fo ed sel ( LocalDate . of ( 2 0 0 0 , 1 0 , 3 ), Ġ" NOR ", Ġ" OS LO ", Ġ 2 0 2 0 , ĠF olk ere gister metadata ( LocalDateTime . of ( 2 0 2 0 , Ġ 1 0 , Ġ 5 , Ġ 1 0 , 5 , 2 )), Ġmock Meta ())), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġk jo enn Ġ= ĠlistOf ( K jo enn ( K jo enn Type . KV IN NE , ĠF olk ere gister metadata ( LocalDateTime . of ( 2 0 2 0 , Ġ 1 0 , Ġ 5 , Ġ 1 0 , 5 , 2 )), Ġmock Meta ())), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdo ed sf all Ġ= ĠlistOf ( Do ed sf all ( LocalDate . of ( 2 0 2 0 , Ġ 1 0 , 1 0 ), ĠF olk ere gister metadata ( LocalDateTime . of ( 2 0 2 0 , Ġ 1 0 , Ġ 5 , Ġ 1 0 , 5 , 2 )), Ġmock Meta ())), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfore l der B arn Rel as jon Ġ= ĠlistOf ( Fore l der B arn Rel as jon (" 1 0 1 0 1 0 ", ĠF amil ier el as j ons rol le . BAR N , ĠF amil ier el as j ons rol le . MOR , Ġmock Meta ())), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġs ivil stand Ġ= ĠlistOf ( S ivil stand ( S ivil stand stype . G IFT , ĠLocalDate . of ( 2 0 1 0 , Ġ 1 0 , 1 0 ), Ġ" 1 0 2 0 2 0 3 0 1 0 ", Ġmock Meta ())), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkont akt ad resse Ġ= Ġempty List (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkont akt inform as jon For Do eds bo Ġ= Ġempty List () ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġid enter Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠIdent Inform as jon (" 2 5 0 7 8 5 2 1 4 9 2 ", ĠFOL KER EG ISTER IDENT ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠIdent Inform as jon (" 1 0 0 0 0 0 0 0 0 0 0 0 0 5 3 ", ĠA KT OR ID ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġgt Ġ= ĠGeo graf isk T ilk ny t ning ( Gt Type . KO MM UNE , Ġ" 0 3 0 1 ", Ġnull , Ġnull ) ĊĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġclient . h ent Person ( any ()) Ġ} Ġreturns ĠH ent Person Response ( H ent Person ResponseData ( p dl Person )) ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġclient . h ent Id enter ( any ()) Ġ} Ġreturns ĠId enter Response ( Id enter Data Response ( H ent Id enter ( id enter ))) ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġclient . h ent Geo graf isk T ilk ny t ning ( any ()) Ġ} Ġreturns ĠGeo graf isk T ilk ny t ning Response ( Geo graf isk T ilk ny t ning ResponseData ( gt )) ĊĊĠĠĠĠĠĠĠ Ġval Ġresult at Ġ= Ġservice . h ent Person ( N ors k Ident (" 1 2 3 4 5 ")) ĊĊĠĠĠĠĠĠĠ Ġval Ġnav n Ġ= Ġresult at !!. nav n !! ĊĠĠĠĠĠĠĠ ĠassertEquals (" For nav n ", Ġnav n . for nav n ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" Mel lom nav n ", Ġnav n . mel lom nav n ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" Et tern av n ", Ġnav n . et tern av n ) ĊĊĠĠĠĠĠĠĠ Ġval Ġv eg ad resse Ġ= Ġresult at . b ost ed sad resse !!. ve gad resse ĊĠĠĠĠĠĠĠ ĠassertEquals (" TEST VE I EN ", Ġv eg ad resse ?. ad ress enav n ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" 1 0 2 0 ", Ġv eg ad resse ?. hus nummer ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" A ", Ġv eg ad resse ?. hus bok st av ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" 0 2 3 4 ", Ġv eg ad resse ?. post nummer ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals (" NOR ", Ġresult at . stats b org ers kap . last OrNull ()?. land ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( LocalDate . of ( 2 0 0 0 , 1 0 , 3 ), Ġresult at . fo ed sel ?. fo ed sel sd ato ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" NOR ", Ġresult at . fo ed sel ?. fo e del and ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" OS LO ", Ġresult at . fo ed sel ?. fo e dest ed ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( K jo enn Type . KV IN NE , Ġresult at . k jo enn ?. k jo enn ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( LocalDate . of ( 2 0 2 0 , Ġ 1 0 , 1 0 ), Ġresult at . do ed sf all ?. do ed sd ato ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġresult at . er Do ed ()) ĊĊĠĠĠĠĠĠĠ ĠassertEquals (" 1 0 1 0 1 0 ", Ġresult at . fore l der B arn Rel as jon . last OrNull ()?. rel at ert Pers ons Ident ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( F amil ier el as j ons rol le . BAR N , Ġresult at . fore l der B arn Rel as jon . last OrNull ()?. rel at ert Pers ons Rol le ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( F amil ier el as j ons rol le . MOR , Ġresult at . fore l der B arn Rel as jon . last OrNull ()?. min Rol le For Person ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( S ivil stand stype . G IFT , Ġresult at . s ivil stand . last OrNull ()?. type ) ĊĠĠĠĠĠĠĠ ĠassertEquals (" 1 0 2 0 2 0 3 0 1 0 ", Ġresult at . s ivil stand . last OrNull ()?. rel at ert V ed S ivil stand ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( LocalDate . of ( 2 0 1 0 , Ġ 1 0 , 1 0 ), Ġresult at . s ivil stand . last OrNull ()?. gy ld ig F ra Og Med ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( gt , Ġresult at . geo graf isk T ilk ny t ning ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġresult at . ad resse bes ky tt else . size ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 2 , Ġresult at . id enter . size ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġk jo enn _ s ist G yl di ge Ver di B lir Val gt () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġk jo enn List e Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠK jo enn ( K jo enn Type . MAN N , ĠF olk ere gister metadata ( LocalDateTime . now (). minus Days ( 1 0 )), Ġmock Meta ( LocalDateTime . now (). minus Days Ġ( 1 0 ))), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠK jo enn ( K jo enn Type . UK J ENT , Ġnull , Ġmock Meta ()), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠK jo enn ( K jo enn Type . KV IN NE , ĠF olk ere gister metadata ( LocalDateTime . now ()), Ġmock Meta ( LocalDateTime . now ())) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġperson Ġ= Ġcreate H ent Person ( k jo enn Ġ= Ġk jo enn List e ) ĊĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġclient . h ent Person ( any ()) Ġ} Ġreturns ĠH ent Person Response ( H ent Person ResponseData ( person )) ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġclient . h ent Id enter ( any ()) Ġ} Ġreturns ĠId enter Response ( Id enter Data Response ( H ent Id enter ( emptyList ()))) ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġclient . h ent Geo graf isk T ilk ny t ning ( any ()) Ġ} Ġreturns ĠGeo graf isk T ilk ny t ning Response ( null , Ġnull ) ĊĊĠĠĠĠĠĠĠ Ġval Ġresult at Ġ= Ġservice . h ent Person ( N ors k Ident (" 1 2 3 4 5 ")) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( K jo enn Type . KV IN NE , Ġresult at !!. k jo enn !!. k jo enn ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġdo ed sf all _ s ist G yl di ge Ver di B lir Val gt () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnow Ġ= ĠLocalDate . now () ĊĊĠĠĠĠĠĠĠ Ġval Ġdo ed sf all List e Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDo ed sf all ( LocalDate . now (), ĠF olk ere gister metadata ( null ), Ġmock Meta ()), Ġ// ĠM ang ler Ġgy ld ig - dat o ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDo ed sf all ( LocalDate . of ( 2 0 2 0 , Ġ 1 0 , Ġ 1 ), Ġnull , Ġmock Meta ()), Ġ// ĠM ang ler Ġfol k ere g .- metadata ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDo ed sf all ( null , ĠF olk ere gister metadata ( LocalDateTime . now ()), Ġmock Meta ()), Ġ// ĠM ang ler Ġdo ed sf all - dat o ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDo ed sf all ( LocalDate . of ( 2 0 1 9 , Ġ 8 , Ġ 5 ), ĠF olk ere gister metadata ( LocalDateTime . now (). minus Days ( 5 0 )), Ġmock Meta ()), Ġ// Ġ 5 0 Ġd ager Ġgam mel Ġgy ld ig het ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDo ed sf all ( now , ĠF olk ere gister metadata ( LocalDateTime . now ()), Ġmock Meta ()) Ġ// ĠMark ert Ġsom Ġgy ld ig Ġf ra Ġn Ã¥ Ġ( FOR VENT ET ĠRESULT AT ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġperson Ġ= Ġcreate H ent Person ( do ed sf all Ġ= Ġdo ed sf all List e ) ĊĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġclient . h ent Person ( any ()) Ġ} Ġreturns ĠH ent Person Response ( H ent Person ResponseData ( person )) ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġclient . h ent Id enter ( any ()) Ġ} Ġreturns ĠId enter Response ( Id enter Data Response ( H ent Id enter ( emptyList ()))) ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġclient . h ent Geo graf isk T ilk ny t ning ( any ()) Ġ} Ġreturns ĠGeo graf isk T ilk ny t ning Response ( null , Ġnull ) ĊĊĠĠĠĠĠĠĠ Ġval Ġresult at Ġ= Ġservice . h ent Person ( N ors k Ident (" 1 2 3 4 5 ")) !! ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( now , Ġresult at . do ed sf all ?. do ed sd ato ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġhar Ad resse bes ky tt else _ ingen Tre ff () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġperson er Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmock Grad ert Person ( Ad resse bes ky tt else Gr ader ing . U GRAD ERT ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmock Grad ert Person ( Ad resse bes ky tt else Gr ader ing . STRE NG T _ F ORT ROL IG _ UT LAND ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmock Grad ert Person ( Ad resse bes ky tt else Gr ader ing . F ORT ROL IG ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmock Grad ert Person ( Ad resse bes ky tt else Gr ader ing . U GRAD ERT ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġclient . h ent Ad resse bes ky tt else ( any ()) Ġ} Ġreturns ĠAd resse bes ky tt else Response ( H ent Ad resse bes ky tt else ( person er )) ĊĊĠĠĠĠĠĠĠ Ġval Ġresult at Ġ= Ġservice . har Ad resse bes ky tt else ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf (" 1 2 3 4 5 ", Ġ" 5 5 5 5 ", Ġ" 8 5 8 5 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( Ad resse bes ky tt else Gr ader ing . STRE NG T _ F ORT ROL IG ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠassertFalse ( result at ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġhar Ad resse bes ky tt else _ har Gr ader ing () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġperson er Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmock Grad ert Person ( Ad resse bes ky tt else Gr ader ing . U GRAD ERT ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmock Grad ert Person ( Ad resse bes ky tt else Gr ader ing . STRE NG T _ F ORT ROL IG _ UT LAND ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmock Grad ert Person ( Ad resse bes ky tt else Gr ader ing . STRE NG T _ F ORT ROL IG ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmock Grad ert Person ( Ad resse bes ky tt else Gr ader ing . F ORT ROL IG ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmock Grad ert Person ( Ad resse bes ky tt else Gr ader ing . U GRAD ERT ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġclient . h ent Ad resse bes ky tt else ( any ()) Ġ} Ġreturns ĠAd resse bes ky tt else Response ( H ent Ad resse bes ky tt else ( person er )) ĊĊĠĠĠĠĠĠĠ Ġval Ġresult at Ġ= Ġservice . har Ad resse bes ky tt else ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf (" 1 2 3 4 5 ", Ġ" 5 5 5 5 ", Ġ" 8 5 8 5 "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( Ad resse bes ky tt else Gr ader ing . STRE NG T _ F ORT ROL IG ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( result at ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġh ent Id enter () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġid enter Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIdent Inform as jon (" 1 ", ĠA KT OR ID ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIdent Inform as jon (" 2 ", ĠFOL KER EG ISTER IDENT ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIdent Inform as jon (" 3 ", ĠN PID ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġclient . h ent Id enter ( any ()) Ġ} Ġreturns ĠId enter Response ( Id enter Data Response ( H ent Id enter ( id enter ))) ĊĊĠĠĠĠĠĠĠ Ġval Ġresult at Ġ= Ġservice . h ent Id enter ( N ors k Ident (" 1 2 3 4 5 ")) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( 3 , Ġresult at . size ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġh ent A ktor Id () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġid enter Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIdent Inform as jon (" 1 ", ĠA KT OR ID ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIdent Inform as jon (" 2 ", ĠFOL KER EG ISTER IDENT ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIdent Inform as jon (" 3 ", ĠN PID ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġclient . h ent A ktor Id ( any ()) Ġ} Ġreturns ĠId enter Response ( Id enter Data Response ( H ent Id enter ( id enter ))) ĊĊĠĠĠĠĠĠĠ Ġval Ġakt or Id Ġ= Ġservice . h ent A ktor Id (" 1 2 3 4 5 ") ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( Ak to er Id (" 1 "), Ġakt or Id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġh ent Ident () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġid enter Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIdent Inform as jon (" 1 ", ĠA KT OR ID ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIdent Inform as jon (" 2 ", ĠFOL KER EG ISTER IDENT ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIdent Inform as jon (" 3 ", ĠN PID ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġclient . h ent Id enter ( any ()) Ġ} Ġreturns ĠId enter Response ( Id enter Data Response ( H ent Id enter ( id enter ))) ĊĊĠĠĠĠĠĠĠ Ġ// ĠH ente Ġut ĠN ors k Ident Ġmed ĠA kt Ã¸ r ID ĊĠĠĠĠĠĠĠ Ġval Ġn ors k Ident F ra A ktor Id Ġ= Ġservice . h ent Ident ( Ident Type . N ors k Ident , ĠAk to er Id (" 1 ")) ĊĠĠĠĠĠĠĠ ĠassertEquals (" 2 ", Ġn ors k Ident F ra A ktor Id . id ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠH ente Ġut ĠN PID Ġmed ĠA kt Ã¸ r ID ĊĠĠĠĠĠĠĠ Ġval Ġnp id F ra A ktor Id Ġ= Ġservice . h ent Ident ( Ident Type . N pid , ĠAk to er Id (" 1 ")) ĊĠĠĠĠĠĠĠ ĠassertEquals (" 3 ", Ġnp id F ra A ktor Id . id ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠH ente Ġut ĠA kt Ã¸ r ID Ġmed ĠN ors k Ident ĊĠĠĠĠĠĠĠ Ġval Ġak to er id F ra N ors k Ident Ġ= Ġservice . h ent Ident ( Ident Type . Ak to er Id , ĠN ors k Ident (" 2 ")) ĊĠĠĠĠĠĠĠ ĠassertEquals (" 1 ", Ġak to er id F ra N ors k Ident . id ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠH ente Ġut ĠN PID Ġmed ĠN ors k Ident ĊĠĠĠĠĠĠĠ Ġval Ġnp id F ra N ors k Ident Ġ= Ġservice . h ent Ident ( Ident Type . N pid , ĠN ors k Ident (" 2 ")) ĊĠĠĠĠĠĠĠ ĠassertEquals (" 3 ", Ġnp id F ra N ors k Ident . id ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠH ente Ġut ĠA kt Ã¸ r ID Ġmed ĠN pid ĊĠĠĠĠĠĠĠ Ġval Ġak to er id F ra N pid Ġ= Ġservice . h ent Ident ( Ident Type . Ak to er Id , ĠN pid (" 2 ")) ĊĠĠĠĠĠĠĠ ĠassertEquals (" 1 ", Ġak to er id F ra N pid . id ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠH ente Ġut ĠN ors k Ident Ġmed ĠN pid ĊĠĠĠĠĠĠĠ Ġval Ġn ors k Ident F ra N pid Ġ= Ġservice . h ent Ident ( Ident Type . N ors k Ident , ĠN pid (" 2 ")) ĊĠĠĠĠĠĠĠ ĠassertEquals (" 2 ", Ġn ors k Ident F ra N pid . id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġh ent Person _ handleError () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmsg Ġ= Ġ" test Ġmessage " ĊĠĠĠĠĠĠĠ Ġval Ġcode Ġ= Ġ" test _ code " ĊĊĠĠĠĠĠĠĠ Ġval Ġerrors Ġ= ĠlistOf ( ResponseError ( msg , Ġextensions Ġ= ĠError Extension ( code , Ġnull , Ġnull ))) ĊĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġclient . h ent Person ( any ()) Ġ} Ġreturns ĠH ent Person Response ( null , Ġerrors ) ĊĊĠĠĠĠĠĠĠ Ġval Ġexception Ġ= ĠassertThrows < Person op ps lag Exception > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġservice . h ent Person ( N ors k Ident (" test ")) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertEquals ("$ code : Ġ$ msg ", Ġexception . message ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġhar Ad resse bes ky tt else _ handleError () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmsg Ġ= Ġ" test Ġmessage " ĊĠĠĠĠĠĠĠ Ġval Ġcode Ġ= Ġ" test _ code " ĊĊĠĠĠĠĠĠĠ Ġval Ġerrors Ġ= ĠlistOf ( ResponseError ( msg , Ġextensions Ġ= ĠError Extension ( code , Ġnull , Ġnull ))) ĊĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġclient . h ent Ad resse bes ky tt else ( any ()) Ġ} Ġreturns ĠAd resse bes ky tt else Response ( null , Ġerrors ) ĊĊĠĠĠĠĠĠĠ Ġval Ġexception Ġ= ĠassertThrows < Person op ps lag Exception > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġservice . har Ad resse bes ky tt else ( listOf (" 1 2 3 4 "), ĠlistOf ( Ad resse bes ky tt else Gr ader ing . F ORT ROL IG )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertEquals ("$ code : Ġ$ msg ", Ġexception . message ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġh ent A ktor Id _ handleError () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmsg Ġ= Ġ" test Ġmessage " ĊĠĠĠĠĠĠĠ Ġval Ġcode Ġ= Ġ" test _ code " ĊĊĠĠĠĠĠĠĠ Ġval Ġerrors Ġ= ĠlistOf ( ResponseError ( msg , Ġextensions Ġ= ĠError Extension ( code , Ġnull , Ġnull ))) ĊĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġclient . h ent A ktor Id ( any ()) Ġ} Ġreturns ĠId enter Response ( data Ġ= Ġnull , Ġerrors Ġ= Ġerrors ) ĊĊĠĠĠĠĠĠĠ Ġval Ġexception Ġ= ĠassertThrows < Person op ps lag Exception > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġservice . h ent A ktor Id (" 1 2 3 4 5 ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertEquals ("$ code : Ġ$ msg ", Ġexception . message ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġh ent Id enter _ handleError () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmsg Ġ= Ġ" test Ġmessage " ĊĠĠĠĠĠĠĠ Ġval Ġcode Ġ= Ġ" test _ code " ĊĊĠĠĠĠĠĠĠ Ġval Ġerrors Ġ= ĠlistOf ( ResponseError ( msg , Ġextensions Ġ= ĠError Extension ( code , Ġnull , Ġnull ))) ĊĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġclient . h ent Id enter ( any ()) Ġ} Ġreturns ĠId enter Response ( data Ġ= Ġnull , Ġerrors Ġ= Ġerrors ) ĊĊĠĠĠĠĠĠĠ Ġval Ġexception Ġ= ĠassertThrows < Person op ps lag Exception > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġservice . h ent Id enter ( N ors k Ident (" 1 2 3 4 5 ")) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertEquals ("$ code : Ġ$ msg ", Ġexception . message ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġh ent Geo graf isk T ilk ny t ning _ handleError () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmsg Ġ= Ġ" test Ġmessage " ĊĠĠĠĠĠĠĠ Ġval Ġcode Ġ= Ġ" test _ code " ĊĊĠĠĠĠĠĠĠ Ġval Ġerrors Ġ= ĠlistOf ( ResponseError ( msg , Ġextensions Ġ= ĠError Extension ( code , Ġnull , Ġnull ))) ĊĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġclient . h ent Geo graf isk T ilk ny t ning ( any ()) Ġ} Ġreturns ĠGeo graf isk T ilk ny t ning Response ( data Ġ= Ġnull , Ġerrors Ġ= Ġerrors ) ĊĊĠĠĠĠĠĠĠ Ġval Ġexception Ġ= ĠassertThrows < Person op ps lag Exception > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġservice . h ent Geo graf isk T ilk ny t ning ( N ors k Ident (" 1 2 3 4 5 ")) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertEquals ("$ code : Ġ$ msg ", Ġexception . message ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` S ok Person Ġmed Ġper fe kt Ġresult at `() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġmapper Ġ= Ġj ack son ObjectMapper (). register Module ( Java Time Module ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. configure ( Deserialization Feature . FAIL _ ON _ UNKNOWN _ PROPERTIES , Ġfalse ) ĊĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{" data ":{" sok Person ":{" pageNumber ": 1 ," total Hits ": 1 ," total Pages ": 1 ," hits ":[{" score ": 4 2 . 0 1 2 8 5 6 ," id enter ":[{" ident ":" 2 0 0 3 5 3 2 5 9 5 7 "," grup pe ":" FOL KER EG ISTER IDENT "},{" ident ":" 2 0 2 6 8 4 4 7 5 3 3 0 3 "," grup pe ":" AK TOR ID "}]} ] }}} ĊĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĊĠĠĠĠĠĠĠ Ġval Ġs ok Person Respons Ġ= Ġmapper . readValue ( response , ĠS ok Person Response :: class . java ) ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġclient . sok Person ( any ()) Ġ} Ġreturns Ġs ok Person Respons ĊĊĊĠĠĠĠĠĠĠ Ġval Ġso ke K riter ie Ġ= ĠS ok K riter ier ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor nav n Ġ= Ġ" For nav n ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġet tern av n Ġ= Ġ" Et tern av n ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfo ed sel sd ato Ġ= ĠLocalDate . of ( 1 9 5 3 , Ġ 3 , Ġ 2 0 )) ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġservice . sok Person ( so ke K riter ie ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals (" 2 0 0 3 5 3 2 5 9 5 7 ", Ġresult . first OrNull Ġ{ Ġit . grup pe Ġ== ĠFOL KER EG ISTER IDENT Ġ} ?. ident ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` S ok Person Ġmed Ġfl ere Ġhits Ġen n Ġen Ġlever er Ġet Ġto mt Ġresult at `() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġmapper Ġ= Ġj ack son ObjectMapper (). register Module ( Java Time Module ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. configure ( Deserialization Feature . FAIL _ ON _ UNKNOWN _ PROPERTIES , Ġfalse ) ĊĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{" data ":{" sok Person ":{" pageNumber ": 1 ," total Hits ": 2 ," total Pages ": 1 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" hits ":[ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{" score ": 4 2 . 0 1 2 8 5 6 ," id enter ":[{" ident ":" 2 0 0 3 5 3 2 5 9 5 7 "," grup pe ":" FOL KER EG ISTER IDENT "},{" ident ":" 2 0 2 6 8 4 4 7 5 3 3 0 3 "," grup pe ":" AK TOR ID "} ]}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{" score ": 5 2 . 0 1 2 8 5 6 ," id enter ":[{" ident ":" 2 0 0 9 9 9 9 9 9 9 9 "," grup pe ":" FOL KER EG ISTER IDENT "},{" ident ":" 2 0 2 6 8 4 4 7 9 9 9 9 9 "," grup pe ":" AK TOR ID "}]} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ] }}} ĊĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĊĠĠĠĠĠĠĠ Ġval Ġs ok Person Respons Ġ= Ġmapper . readValue ( response , ĠS ok Person Response :: class . java ) ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġclient . sok Person ( any ()) Ġ} Ġreturns Ġs ok Person Respons ĊĊĊĠĠĠĠĠĠĠ Ġval Ġso ke K riter ie Ġ= ĠS ok K riter ier ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor nav n Ġ= Ġ" For nav n ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġet tern av n Ġ= Ġ" Et tern av n ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfo ed sel sd ato Ġ= ĠLocalDate . of ( 1 9 5 3 , Ġ 3 , Ġ 2 0 )) ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġservice . sok Person ( so ke K riter ie ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( empty Set < Ident Inform as jon >(), Ġresult ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` S ok Person Ġreturn er er Ġjson Ġmed ĠU NA UTH ORIZ ED Ġerror Ġsom Ġk aster Ġen ĠPerson op ps lag Exception `() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġmapper Ġ= Ġj ack son ObjectMapper (). register Module ( Java Time Module ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. configure ( Deserialization Feature . FAIL _ ON _ UNKNOWN _ PROPERTIES , Ġfalse ) ĊĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{" errors ":[{" message ":" Ik ke Ġaut ent is ert "," locations ":[{" line ": 1 ," column ": 5 2 }], " path ":[" sok Person "]," extensions ":{" code ":" un authenticated "," classification ":" Execution Abort ed "}} ]," data ":{" sok Person ": null }} ĊĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĊĠĠĠĠĠĠĠ Ġval Ġs ok Person Respons Ġ= Ġmapper . readValue ( response , ĠS ok Person Response :: class . java ) ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġclient . sok Person ( any ()) Ġ} Ġreturns Ġs ok Person Respons ĊĊĊĠĠĠĠĠĠĠ Ġval Ġso ke K riter ie Ġ= ĠS ok K riter ier ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor nav n Ġ= Ġ" For nav n ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġet tern av n Ġ= Ġ" Et tern av n ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfo ed sel sd ato Ġ= ĠLocalDate . of ( 1 9 5 3 , Ġ 3 , Ġ 2 0 )) ĊĊĠĠĠĠĠĠĠ ĠassertThrows < Person op ps lag Exception > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġservice . sok Person ( so ke K riter ie ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate H ent Person ( ĊĠĠĠĠĠĠĠ Ġad resse bes ky tt else : ĠList < Ad resse bes ky tt else > Ġ= Ġempty List (), ĊĠĠĠĠĠĠĠ Ġb ost ed sad resse : ĠList < B ost ed sad resse > Ġ= Ġempty List (), ĊĠĠĠĠĠĠĠ Ġopp holds ad resse : ĠList < Opp holds ad resse > Ġ= Ġempty List (), ĊĠĠĠĠĠĠĠ Ġnav n : ĠList < Nav n > Ġ= Ġempty List (), ĊĠĠĠĠĠĠĠ Ġstats b org ers kap : ĠList < Stats b org ers kap > Ġ= Ġempty List (), ĊĠĠĠĠĠĠĠ Ġfo ed sel : ĠList < Fo ed sel > Ġ= Ġempty List (), ĊĠĠĠĠĠĠĠ Ġk jo enn : ĠList < K jo enn > Ġ= Ġempty List (), ĊĠĠĠĠĠĠĠ Ġdo ed sf all : ĠList < Do ed sf all > Ġ= Ġempty List (), ĊĠĠĠĠĠĠĠ Ġfam il ier el as jon er : ĠList < Fore l der B arn Rel as jon > Ġ= Ġempty List (), ĊĠĠĠĠĠĠĠ Ġs ivil stand : ĠList < S ivil stand > Ġ= Ġempty List (), ĊĠĠĠĠĠĠĠ Ġkont akt ad resse : ĠList < Kont akt ad resse > Ġ= Ġempty List (), ĊĠĠĠĠĠĠĠ Ġkont akt inform as jon For Do eds bo : ĠList < Kont akt inform as jon For Do eds bo > Ġ= Ġempty List () ĊĠĠĠ Ġ) Ġ= ĠH ent Person ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġad resse bes ky tt else , Ġb ost ed sad resse , Ġopp holds ad resse , Ġnav n , Ġstats b org ers kap , Ġfo ed sel , Ġk jo enn , Ġdo ed sf all , Ġfam il ier el as jon er , Ġs ivil stand , Ġkont akt ad resse , Ġkont akt inform as jon For Do eds bo ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġprivate Ġfun Ġmock Grad ert Person ( grader ing : ĠAd resse bes ky tt else Gr ader ing ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAd resse bes ky tt else B olk Person ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAd resse bes ky tt else Person ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġad resse bes ky tt else Ġ= ĠlistOf ( Ad resse bes ky tt else ( grader ing )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ċ }