package Ġkay ak . json Ċ Ċ import Ġio . kot est . assertions . throw ables . should Throw Exactly Ċ import Ġio . kot est . core . spec . style . Should Spec Ċ import Ġio . kot est . matchers . shouldBe Ċ import Ġjava . io . String Reader Ċ Ċ class ĠJson Parser Specification Ġ: ĠShould Spec ({ ĊĠ Ġcontext (" creation ") Ġ{ ĊĠĠĠ Ġshould (" reject ĠZERO Ġbuffer Ġcapacity ") Ġ{ ĊĠĠĠĠĠ Ġval Ġfailure Ġ= Ġshould Throw Exactly < IllegalArgumentException > Ġ{ ĊĠĠĠĠĠĠĠ ĠJson Parser . of (" 1 0 ", Ġ 0 ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġfailure . message ĠshouldBe Ġ" buffer Ġcapacity Ġmust Ġbe Ġgreater Ġthan Ġzero " ĊĠĠĠ Ġ} ĊĠĠĠ Ġshould (" reject ĠNE G ATIVE Ġbuffer Ġcapacity ") Ġ{ ĊĠĠĠĠĠ Ġval Ġfailure Ġ= Ġshould Throw Exactly < IllegalArgumentException > Ġ{ ĊĠĠĠĠĠĠĠ ĠJson Parser . of (" 1 0 ", Ġ- 1 ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġfailure . message ĠshouldBe Ġ" buffer Ġcapacity Ġmust Ġbe Ġgreater Ġthan Ġzero " ĊĠĠĠ Ġ} ĊĠĠĠ Ġshould (" reject Ġempty Ġstrings ") Ġ{ ĊĠĠĠĠĠ Ġval Ġfailure Ġ= Ġshould Throw Exactly < Json Parser . Illegal Json Syntax > Ġ{ ĊĠĠĠĠĠĠĠ ĠJson Parser . of ("", Ġ 1 ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġfailure . message ĠshouldBe Ġ" Location ( offset = 0 , Ġline = 1 , Ġcolumn = 1 ): ĠUnexpected Ġend Ġof Ġinput " ĊĠĠĠ Ġ} ĊĠĠĠ Ġshould (" accept Ġempty Ġreaders ") Ġ{ ĊĠĠĠĠĠ ĠJson Parser . of ( String Reader (""), Ġ 1 ) Ġ// Ġparsing Ġwill Ġfail ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġcontext (" parsing ") Ġ{ ĊĠĠĠ Ġshould (" reject Ġempty Ġreaders ") Ġ{ ĊĠĠĠĠĠ Ġval Ġfailure Ġ= Ġshould Throw Exactly < Json Parser . Illegal Json Syntax > Ġ{ ĊĠĠĠĠĠĠĠ ĠJson . parse ( String Reader ("")) ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġfailure . message ĠshouldBe Ġ" Location ( offset = 0 , Ġline = 1 , Ġcolumn = 1 ): ĠUnexpected Ġend Ġof Ġinput " ĊĠĠĠ Ġ} ĊĠĠĠ Ġshould (" re cognize Ġnull Ġjson Ġvalue ") Ġ{ ĊĠĠĠĠĠ Ġval Ġjson Ġ= ĠJson . parse (" null ") ĊĠĠĠĠĠ Ġjson . isDefined () ĠshouldBe Ġtrue ĊĠĠĠĠĠ Ġjson . isNull () ĠshouldBe Ġtrue ĊĠĠĠ Ġ} ĊĠĠĠ Ġshould (" re cognize Ġtrue Ġjson Ġvalue ") Ġ{ ĊĠĠĠĠĠ Ġval Ġjson Ġ= ĠJson . parse (" true ") ĊĠĠĠĠĠ Ġjson . isDefined () ĠshouldBe Ġtrue ĊĠĠĠĠĠ Ġjson . isNull () ĠshouldBe Ġfalse ĊĠĠĠĠĠ Ġjson . is Boolean () ĠshouldBe Ġtrue ĊĠĠĠĠĠ Ġjson . as Boolean () ĠshouldBe Ġtrue ĊĠĠĠĠĠ Ġjson . is Nullable Boolean () ĠshouldBe Ġtrue ĊĠĠĠĠĠ Ġjson . as Nullable Boolean () ĠshouldBe Ġtrue ĊĠĠĠĠĠ Ġjson . isTrue () ĠshouldBe Ġtrue ĊĠĠĠ Ġ} ĊĠĠĠ Ġshould (" re cognize Ġfalse Ġjson Ġvalue ") Ġ{ ĊĠĠĠĠĠ Ġval Ġjson Ġ= ĠJson . parse (" false ") ĊĠĠĠĠĠ Ġjson . isDefined () ĠshouldBe Ġtrue ĊĠĠĠĠĠ Ġjson . isNull () ĠshouldBe Ġfalse ĊĠĠĠĠĠ Ġjson . is Boolean () ĠshouldBe Ġtrue ĊĠĠĠĠĠ Ġjson . as Boolean () ĠshouldBe Ġfalse ĊĠĠĠĠĠ Ġjson . is Nullable Boolean () ĠshouldBe Ġtrue ĊĠĠĠĠĠ Ġjson . as Nullable Boolean () ĠshouldBe Ġfalse ĊĠĠĠĠĠ Ġjson . isFalse () ĠshouldBe Ġtrue ĊĠĠĠ Ġ} ĊĠĠĠ Ġshould (" re cognize Ġsimple Ġstring Ġjson Ġvalue ") Ġ{ ĊĠĠĠĠĠ Ġval Ġjson Ġ= ĠJson . parse ("\" k ay ak \" ") ĊĠĠĠĠĠ Ġjson . isDefined () ĠshouldBe Ġtrue ĊĠĠĠĠĠ Ġjson . isNull () ĠshouldBe Ġfalse ĊĠĠĠĠĠ Ġjson . isString () ĠshouldBe Ġtrue ĊĠĠĠĠĠ Ġjson . asString () ĠshouldBe Ġ" k ay ak " ĊĠĠĠĠĠ Ġjson . is Nullable String () ĠshouldBe Ġtrue ĊĠĠĠĠĠ Ġjson . as Nullable String () ĠshouldBe Ġ" k ay ak " ĊĠĠĠ Ġ} ĊĠĠĠ Ġshould (" re cognize Ġinteger Ġjson Ġvalue ") Ġ{ ĊĠĠĠĠĠ Ġval Ġjson Ġ= ĠJson . parse (" 1 1 1 ") ĊĠĠĠĠĠ Ġjson . isDefined () ĠshouldBe Ġtrue ĊĠĠĠĠĠ Ġjson . isNull () ĠshouldBe Ġfalse ĊĠĠĠĠĠ Ġjson . isNumber () ĠshouldBe Ġtrue ĊĠĠĠĠĠ Ġjson . as Number () ĠshouldBe Ġ" 1 1 1 " ĊĠĠĠĠĠ Ġjson . is Nullable Number () ĠshouldBe Ġtrue ĊĠĠĠĠĠ Ġjson . as Nullable Number () ĠshouldBe Ġ" 1 1 1 " ĊĠĠĠ Ġ} ĊĠĠĠ Ġshould (" re cognize Ġdecimal Ġjson Ġvalue ") Ġ{ ĊĠĠĠĠĠ Ġval Ġjson Ġ= ĠJson . parse (" 1 1 1 . 2 2 ") ĊĠĠĠĠĠ Ġjson . isDefined () ĠshouldBe Ġtrue ĊĠĠĠĠĠ Ġjson . isNull () ĠshouldBe Ġfalse ĊĠĠĠĠĠ Ġjson . isNumber () ĠshouldBe Ġtrue ĊĠĠĠĠĠ Ġjson . as Number () ĠshouldBe Ġ" 1 1 1 . 2 2 " ĊĠĠĠĠĠ Ġjson . is Nullable Number () ĠshouldBe Ġtrue ĊĠĠĠĠĠ Ġjson . as Nullable Number () ĠshouldBe Ġ" 1 1 1 . 2 2 " ĊĠĠĠ Ġ} ĊĠĠĠ Ġshould (" re cognize Ġarray Ġjson Ġvalue ") Ġ{ ĊĠĠĠĠĠ Ġval Ġjson Ġ= ĠJson . parse (""" [ 1 1 1 , Ġ 0 . 2 2 , Ġ[ true , Ġfalse ], Ġ{" s ara ":" cat ung a "}] """) ĊĠĠĠĠĠ Ġjson . isDefined () ĠshouldBe Ġtrue ĊĠĠĠĠĠ Ġjson . isNull () ĠshouldBe Ġfalse ĊĠĠĠĠĠ Ġjson . isArray () ĠshouldBe Ġtrue ĊĠĠĠĠĠ Ġjson . as Array () ĠshouldBe ĠlistOf ( ĊĠĠĠĠĠĠĠ ĠJson . of ( 1 1 1 ), ĊĠĠĠĠĠĠĠ ĠJson . of ( 0 . 2 2 ), ĊĠĠĠĠĠĠĠ ĠJson . of ( Json Boolean . TRUE , ĠJson Boolean . FALSE ), ĊĠĠĠĠĠĠĠ ĠJson . of (" s ara " Ġto ĠJson . of (" cat ung a ")) ĊĠĠĠĠĠ Ġ) ĊĠĠĠĠĠ Ġjson . is Nullable Array () ĠshouldBe Ġtrue ĊĠĠĠĠĠ Ġjson . as Nullable Array () ĠshouldBe ĠlistOf ( ĊĠĠĠĠĠĠĠ ĠJson . of ( 1 1 1 ), ĊĠĠĠĠĠĠĠ ĠJson . of ( 0 . 2 2 ), ĊĠĠĠĠĠĠĠ ĠJson . of ( Json Boolean . TRUE , ĠJson Boolean . FALSE ), ĊĠĠĠĠĠĠĠ ĠJson . of (" s ara " Ġto ĠJson . of (" cat ung a ")) ĊĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġshould (" re cognize Ġobject Ġjson Ġvalue ") Ġ{ ĊĠĠĠĠĠ Ġval Ġjson Ġ= ĠJson . parse (""" { ĊĠĠĠĠĠĠĠ Ġ" s ara ": Ġ" cat ung a ", ĊĠĠĠĠĠĠĠ Ġ" flag ": Ġtrue ĊĠĠĠĠĠ Ġ} """) ĊĠĠĠĠĠ Ġjson . isDefined () ĠshouldBe Ġtrue ĊĠĠĠĠĠ Ġjson . isNull () ĠshouldBe Ġfalse ĊĠĠĠĠĠ Ġjson . isObject () ĠshouldBe Ġtrue ĊĠĠĠĠĠ Ġjson . as Object () ĠshouldBe Ġmap Of ( ĊĠĠĠĠĠĠĠ Ġ" s ara " Ġto ĠJson . of (" cat ung a "), ĊĠĠĠĠĠĠĠ Ġ" flag " Ġto ĠJson . of ( true ) ĊĠĠĠĠĠ Ġ) ĊĠĠĠĠĠ Ġjson . is Nullable Object () ĠshouldBe Ġtrue ĊĠĠĠĠĠ Ġjson . as Nullable Object () ĠshouldBe Ġmap Of ( ĊĠĠĠĠĠĠĠ Ġ" s ara " Ġto ĠJson . of (" cat ung a "), ĊĠĠĠĠĠĠĠ Ġ" flag " Ġto ĠJson . of ( true ) ĊĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ }) ĊĊ