package Ġcom . h ern il . vent . mast ery Ċ Ċ import Ġcom . h ern il . vent . application . mast ery . utils . M ast ery Parser Ċ import Ġorg . json . JSONObject Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . jupiter . api . Assertions . assertEquals Ċ import Ġorg . junit . jupiter . api . Assertions . assertNotNull Ċ import Ġjava . io . File Ċ import Ġjava . io . InputStream Ċ import Ġjava . net . URL Ċ Ċ class ĠParser Tests Ġ{ ĊĊĠĠĠ Ġval Ġm ast ery Endpoint : ĠString Ġ= Ġ" http :// adapt 2 . sis . p itt . edu / aggregate 2 /" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Get Content Levels ? grp = Nor way Spring 2 0 1 8 & mod = user & sid = TEST & cid = 3 5 2 & usr =" ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġparse Known Good Source Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠinputStream : ĠInputStream Ġ= ĠFile (" src / test / kotlin / com / h ern il / vent / mast ery / testdata / example - input . json "). inputStream () ĊĠĠĠĠĠĠĠ Ġval Ġinput String Ġ= ĠinputStream . buffered Reader (). use Ġ{ Ġit . read Text () Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġlocal Input Json Ġ= ĠJSONObject ( input String ) ĊĠĠĠĠĠĠĠ Ġval Ġle arner Ġ= ĠM ast ery Parser ( local Input Json . getJSONObject (" lear ner ")). parsed Data ĊĠĠĠĠĠĠĠ ĠassertNotNull ( lear ner ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( local Input Json . getJSONObject (" lear ner "). getString (" id "), Ġle arner . id ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( local Input Json . getJSONObject (" lear ner "). getJSONObject (" state "). ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget JSONObject (" topics "). getJSONObject (" ArrayList s "). ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget JSONObject (" sequ encing "). getDouble (" Ch allenges "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġle arner . topics . find Ġ{ Ġit . description Ġ== Ġ" ArrayList s "} !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. sequ encing . find Ġ{ Ġit . type Ġ== Ġ" Ch allenges " Ġ} !!. value ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġparse Remote API Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinput Json Ġ= ĠJSONObject ( URL ( mast ery Endpoint Ġ+ Ġ" nor way 3 "). read Text ()) ĊĠĠĠĠĠĠĠ Ġval Ġle arner Ġ= ĠM ast ery Parser ( input Json . getJSONObject (" lear ner ")). parsed Data ĊĠĠĠĠĠĠĠ ĠassertNotNull ( lear ner ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( input Json . getJSONObject (" lear ner "). getString (" id "), Ġle arner . id ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( input Json . getJSONObject (" lear ner "). getJSONObject (" state "). ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget JSONObject (" topics "). getJSONObject (" ArrayList s "). ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget JSONObject (" sequ encing "). getDouble (" Ch allenges "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġle arner . topics . find Ġ{ Ġit . description Ġ== Ġ" ArrayList s "} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . sequ encing ?. find Ġ{ Ġit . type Ġ== Ġ" Ch allenges " Ġ} ?. value ) ĊĠĠĠ Ġ} Ċ Ċ }