/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 7 Ġ- Ġpresent ĠIn structure , ĠInc . Ċ Ġ* Ċ Ġ* ĠĠĠĠ ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* ĠĠĠĠ Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠĠĠĠ ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠĠĠĠ ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* ĠĠĠĠ Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠĠĠĠ ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠĠĠĠ ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* ĠĠĠĠ Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ* Ċ Ġ*/ Ċ Ċ package Ġcom . in structure . canvas api 2 . unit Ċ Ċ import Ġcom . in structure . canvas api 2 . models . Dis cussion Entry Ċ import Ġcom . in structure . canvas api 2 . models . Dis cussion Topic Ċ import Ġcom . in structure . canvas api 2 . utils . parse Ċ import Ġorg . junit . Assert Ċ import Ġorg . intellij . lang . annotations . Language Ċ import Ġorg . junit . Test Ċ Ċ class ĠDis cussion Topic UnitTest Ġ: ĠAssert () Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Dis cussion Topic () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdiscussion Topic : ĠDis cussion Topic Ġ= Ġdiscussion Topic JSON . parse () ĊĊĠĠĠĠĠĠĠ ĠAssert . assertNotNull ( discussion Topic ) ĊĠĠĠĠĠĠĠ ĠAssert . assertNotNull ( discussion Topic . views ) ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( discussion Entry Ġin Ġdiscussion Topic . views ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtest Dis cussion Entry View ( discussion Entry ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠAssert . assertNotNull ( discussion Topic . unread Entries ) ĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( discussion Topic . unread Entries . isNotEmpty ()) ĊĠĠĠĠĠĠĠ ĠAssert . assertNotNull ( discussion Topic . participants ) ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( discussion Participant Ġin Ġdiscussion Topic . participants !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertNotNull ( discussion Participant ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertNotNull ( discussion Participant . html Url ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertNotNull ( discussion Participant . displayName ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertNotNull ( discussion Participant . avatar ImageUrl ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertTrue ( discussion Participant . id Ġ> Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġtest Dis cussion Entry View ( discussion Entry : ĠDis cussion Entry ) Ġ{ ĊĠĠĠĠĠĠĠ ĠAssert . assertNotNull ( discussion Entry ) ĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( discussion Entry . id Ġ> Ġ 0 ) ĊĊĠĠĠĠĠĠĠ Ġdiscussion Entry . replies ?. let Ġ{ replies Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( reply Ġin Ġreplies ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtest Dis cussion Entry View ( reply ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( discussion Entry . userId Ġ> Ġ 0 ) ĊĠĠĠĠĠĠĠ ĠAssert . assertNotNull ( discussion Entry . createdAt ) ĊĠĠĠĠĠĠĠ ĠAssert . assertNotNull ( discussion Entry . updatedAt ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Language (" JSON ") ĊĠĠĠ Ġprivate Ġvar Ġdiscussion Topic JSON Ġ= Ġ""" ĊĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġ" unread _ entries ": Ġ[ ĊĠĠĠĠĠĠĠĠĠĠ 1 , ĊĠĠĠĠĠĠĠĠĠĠ 2 , ĊĠĠĠĠĠĠĠĠĠĠ 3 ĊĠĠĠĠĠĠĠ Ġ], ĊĠĠĠĠĠĠĠ Ġ" forced _ entries ": Ġ[], ĊĠĠĠĠĠĠĠ Ġ" participants ": Ġ[ ĊĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" id ": Ġ 3 8 2 8 6 4 8 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" display _ name ": Ġ" D rip ĠD ers key ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" avatar _ image _ url ": Ġ" https :// mobile dev . in structure . com / images / thumb nails / 3 2 9 5 7 5 4 8 / kr bl SV 5 HH vh q ql x UC tv As R 6 Ak G MI 2 1 q sw 8 i 2 y 1 Tx ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" html _ url ": Ġ" https :// mobile dev . in structure . com / courses / 2 4 2 1 9 / users / 3 8 2 8 6 4 8 " ĊĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" id ": Ġ 3 3 6 3 2 9 1 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" display _ name ": Ġ" J os her ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" avatar _ image _ url ": Ġ" https :// mobile dev . in structure . com / images / thumb nails / 2 5 8 7 1 8 6 6 / VC YN 4 XM wk J jy XJ Qy 2 ty KX ib Ud Pn IT 4 a Am Z CP st GP ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" html _ url ": Ġ" https :// mobile dev . in structure . com / courses / 2 4 2 1 9 / users / 3 3 6 3 2 9 1 " ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ], ĊĠĠĠĠĠĠĠ Ġ" view ": Ġ[ ĊĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" created _ at ": Ġ" 2 0 1 3 - 0 5 - 2 9 T 1 5 : 5 0 : 2 4 Z ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" id ": Ġ 5 2 0 3 7 5 2 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" parent _ id ": Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" updated _ at ": Ġ" 2 0 1 3 - 0 5 - 2 9 T 1 5 : 5 0 : 2 4 Z ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" user _ id ": Ġ 3 8 2 8 6 4 8 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" message ": Ġ" Clo jure 1 !! 1 1 !! " ĊĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" created _ at ": Ġ" 2 0 1 3 - 0 5 - 2 9 T 1 5 : 5 1 : 1 8 Z ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" id ": Ġ 5 2 0 3 7 6 7 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" parent _ id ": Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" updated _ at ": Ġ" 2 0 1 3 - 0 5 - 2 9 T 1 5 : 5 1 : 1 8 Z ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" user _ id ": Ġ 3 8 2 8 6 4 8 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" message ": Ġ" I Ġmean : ĠClo jure Ġis Ġthe Ġbest Ġprogramming Ġlanguage .", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" replies ": Ġ[ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" created _ at ": Ġ" 2 0 1 3 - 1 0 - 0 7 T 1 8 : 0 6 : 5 8 Z ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" id ": Ġ 7 2 2 1 3 1 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" parent _ id ": Ġ 5 2 0 3 7 6 7 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" updated _ at ": Ġ" 2 0 1 3 - 1 0 - 0 7 T 1 8 : 0 6 : 5 8 Z ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" user _ id ": Ġ 3 3 6 3 2 9 1 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" message ": Ġ" False " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ] ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ], ĊĠĠĠĠĠĠĠ Ġ" new _ entries ": Ġ[] ĊĠĠĠĠĠ Ġ} """ Ċ Ċ } Ċ