package Ġcom . und abot . iz zy . parser Ċ Ċ import Ġcom . und abot . iz zy . Given Ċ import Ġcom . und abot . iz zy . Then Ċ import Ġcom . und abot . iz zy . When Ċ import Ġcom . und abot . iz zy . equals Ċ import Ġcom . und abot . iz zy . jackson . Jack son Parser Ċ import Ġcom . und abot . iz zy . models . Link Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ Ċ class ĠDeserialize Link Should Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġdeserialize : ĠDeserialize Link ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġlink Element : ĠJson Elements ĊĠĠĠ Ġprivate Ġvar Ġactual Link : ĠLink ? Ġ= Ġnull ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun Ġprepare () Ġ{ ĊĠĠĠĠĠĠĠ Ġdeserialize Ġ= ĠDeserialize Link () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` return Ġnull Ġlink Ġwhen Ġgiven Ġelement Ġis Ġnull `() Ġ{ ĊĠĠĠĠĠĠĠ ĠGiven Ġ{ Ġ` link Ġelement Ġfrom ` (""" {" link ": null } """) Ġ} ĊĠĠĠĠĠĠĠ ĠWhen Ġ{ Ġ` deserialize Ġis Ġrequested `() Ġ} ĊĠĠĠĠĠĠĠ ĠThen Ġ{ Ġactual Link Ġequals Ġnull Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` return Ġlink Ġwith Ġhref Ġonly Ġwhen Ġelement Ġis Ġstring `() Ġ{ ĊĠĠĠĠĠĠĠ ĠGiven Ġ{ Ġ` link Ġelement Ġfrom ` (""" {" link ":" url "} """) Ġ} ĊĠĠĠĠĠĠĠ ĠWhen Ġ{ Ġ` deserialize Ġis Ġrequested `() Ġ} ĊĠĠĠĠĠĠĠ ĠThen Ġ{ Ġactual Link Ġequals ĠLink ( href Ġ= Ġ" url ") Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` return Ġlink Ġwith Ġhref Ġwhen Ġelement Ġis Ġobject `() Ġ{ ĊĠĠĠĠĠĠĠ ĠGiven Ġ{ Ġ` link Ġelement Ġfrom ` (""" {" link ":{" href ":" url "}} """) Ġ} ĊĠĠĠĠĠĠĠ ĠWhen Ġ{ Ġ` deserialize Ġis Ġrequested `() Ġ} ĊĠĠĠĠĠĠĠ ĠThen Ġ{ Ġactual Link Ġequals ĠLink ( href Ġ= Ġ" url ") Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` return Ġlink Ġwith Ġmeta Ġwhen Ġelement Ġis Ġobject `() Ġ{ ĊĠĠĠĠĠĠĠ ĠGiven Ġ{ Ġ` link Ġelement Ġfrom ` (""" {" link ":{" meta ":{" key ":" value "}} } """) Ġ} ĊĠĠĠĠĠĠĠ ĠWhen Ġ{ Ġ` deserialize Ġis Ġrequested `() Ġ} ĊĠĠĠĠĠĠĠ ĠThen Ġ{ Ġactual Link Ġequals ĠLink ( meta Ġ= Ġmap Of (" key " Ġto Ġ" value ")) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` return Ġlink Ġwith Ġnull Ġmeta Ġwhen Ġmeta Ġis Ġnull `() Ġ{ ĊĠĠĠĠĠĠĠ ĠGiven Ġ{ Ġ` link Ġelement Ġfrom ` (""" {" link ":{" meta ": null }} """) Ġ} ĊĠĠĠĠĠĠĠ ĠWhen Ġ{ Ġ` deserialize Ġis Ġrequested `() Ġ} ĊĠĠĠĠĠĠĠ ĠThen Ġ{ Ġactual Link Ġequals ĠLink () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġ` link Ġelement Ġfrom `( json : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlink Element Ġ= ĠJack son Parser (). parse ToJson Elements ( json ). json Element (" link ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġ` deserialize Ġis Ġrequested `() Ġ{ ĊĠĠĠĠĠĠĠ Ġactual Link Ġ= Ġdeserialize . from ( link Element ) ĊĠĠĠ Ġ} Ċ } Ċ