package Ġorg . stuff . kt json . test Ċ Ċ import Ġorg . junit . Test Ċ import Ġorg . stuff . kt json . error . TypeError Exception Ċ import Ġorg . stuff . kt json . error . Invalid JSON FormatException Ċ import Ġorg . stuff . kt json . JSONArray Ċ import Ġorg . stuff . kt json . JSONObject Ċ import Ġjava . io . ByteArray InputStream Ċ import Ġkotlin . test . assertEquals Ċ import Ġkotlin . test . assert Fails With Ċ import Ġkotlin . test . assertFalse Ċ import Ġkotlin . test . assertTrue Ċ Ċ class ĠJSONArray Test Ġ{ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġempty Test () Ġ{ ĊĠĠĠĠĠĠĠ Ġperform ( listOf ( JSONArray (" [] "), ĠJSONArray (" ĠĠ Ġ[ ĠĠ Ġ] ĠĠ Ġ"), ĠJSONArray ())) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 0 , Ġit . size ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( it . isEmpty ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Fails With < ArrayIndex OutOfBoundsException > Ġ{ Ġit [ 0 ] Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġarray Parse Test () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstr Ġ= Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ|[ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠ 1 1 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠ 0 . 1 e - 2 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ" string ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ" key 1 ": Ġ" value 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ" key 2 ": Ġ" value 2 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ[ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠ Ġ" str " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠ Ġ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ| ] ĊĠĠĠĠĠĠĠ Ġ""" . trim Margin () ĊĊĠĠĠĠĠĠĠ Ġperform ( listOf ( JSONArray ( str ), ĠJSONArray ( ByteArray InputStream ( str . toByteArray ( Charsets . UTF _ 3 2 )), ĠChar sets . UTF _ 3 2 ))) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 8 , Ġit . size ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertFalse ( it . isEmpty ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( it [ 0 ]. isNull ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Fails With < TypeError Exception > Ġ{ Ġit [ 1 ]. to Number Value () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġit [ 1 ]. to Boolean Value ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( false , Ġit [ 2 ]. to Boolean Value ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 1 1 , Ġit [ 3 ]. to Number Value (). toInt ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 0 . 0 0 1 , Ġit [ 4 ]. to Number Value ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals (" string ", Ġit [ 5 ]. toString Value ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Fails With < TypeError Exception > Ġ{ Ġit [ 6 ]. to Number Value () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġobj Ġ= Ġit [ 6 ]. to JSONObject () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 2 , Ġobj . all Keys . size ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinner Array Ġ= Ġit [ 7 ]. toJSON Array () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 4 , Ġinner Array . size ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertTrue ( inner Array [ 0 ]. isNull ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġinner Array [ 1 ]. to Boolean Value ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( 0 , Ġinner Array [ 2 ]. to Number Value (). toInt ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals (" str ", Ġinner Array [ 3 ]. toString Value ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġinvalid Test () Ġ{ ĊĠĠĠĠĠĠĠ Ġperform ( listOf ("[ ", Ġ" ]", Ġ"[ , ]", Ġ"[ } ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Fails With < Invalid JSON FormatException > Ġ{ ĠJSONArray ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġedit Array Test () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġarray Ġ= ĠJSONArray () ĊĠĠĠĠĠĠĠ Ġarray . add ( null ) ĊĠĠĠĠĠĠĠ Ġarray . add ( true ) ĊĠĠĠĠĠĠĠ Ġarray . add ( 1 2 ) ĊĠĠĠĠĠĠĠ Ġarray . add ( 0 . 1 ) ĊĠĠĠĠĠĠĠ Ġarray . add (" hello Ġ\ tw orld ") ĊĊĠĠĠĠĠĠĠ Ġarray . add ( JSONObject ()) ĊĠĠĠĠĠĠĠ Ġarray [ 5 ]. to JSONObject ()[" key "] Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġarray . add ( JSONArray ()) ĊĠĠĠĠĠĠĠ Ġarray [ 6 ]. toJSON Array (). add ( null ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( 7 , Ġarray . size ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( array [ 0 ]. isNull ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( true , Ġarray [ 1 ]. to Boolean Value ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 2 , Ġarray [ 2 ]. to Number Value (). toInt ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 0 . 1 , Ġarray [ 3 ]. to Number Value ()) ĊĠĠĠĠĠĠĠ ĠassertEquals (" hello Ġ\ tw orld ", Ġarray [ 4 ]. toString Value ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ("\" hello Ġ\\ tw orld \"", Ġarray [ 4 ]. format ToString ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( false , Ġarray [ 5 ]. to JSONObject ()[" key "]. to Boolean Value ()) ĊĠĠĠĠĠĠĠ ĠassertTrue ( array [ 6 ]. toJSON Array ()[ 0 ]. isNull ()) ĊĊĠĠĠĠĠĠĠ Ġassert Fails With < ArrayIndex OutOfBoundsException > Ġ{ Ġarray [ 7 ] Ġ= Ġ" word " Ġ} ĊĊĠĠĠĠĠĠĠ Ġarray [ 1 ] Ġ= Ġ" word " ĊĠĠĠĠĠĠĠ ĠassertEquals (" word ", Ġarray [ 1 ]. toString Value ()) ĊĠĠĠ Ġ} Ċ }