package Ġcom . d roid h ats . camp us compass . repositories Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . Build Ċ import Ġcom . d roid h ats . camp us compass . models . Building Ċ import Ġcom . d roid h ats . camp us compass . models . Camp us Ċ import Ġcom . google . android . gms . maps . model . LatLng Ċ import Ġcom . google . android . gms . maps . model . Marker Options Ċ import Ġcom . google . android . gms . maps . model . Polygon Options Ċ import Ġorg . junit . Assert Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ import Ġorg . ro bo lectric . Ro bo lectric TestRunner Ċ import Ġorg . ro bo lectric . Runtime Environment Ċ import Ġorg . ro bo lectric . annotation . Config Ċ import Ġjava . io . IOException Ċ import Ġjava . io . InputStream Ċ Ċ @ RunWith ( Ro bo lectric TestRunner :: class ) Ċ @ Config ( sdk Ġ= Ġ[ Build . VERSION _ CODES . O _ MR 1 ]) Ċ class ĠMap Repository Test Ġ{ ĊĠĠĠ Ġ// ĠApp Ġcontext Ġis Ġneeded Ġto Ġcreate Ġthe Ġrepository Ġand Ġread Ġthe Ġexternal Ġfile ĊĠĠĠ Ġprivate Ġval Ġcontext : ĠContext Ġ= ĠRuntime Environment . application . application Context ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġexternal File Ex istence Test () Ġ{ ĊĠĠĠĠĠĠĠ Ġvar ĠinputStream : ĠInputStream ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġ// ĠTry Ġto Ġopen Ġthe Ġfile ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠinputStream Ġ= Ġcontext . assets . open (" build ings . json ") ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠAssert Ġif Ġinput Ġstream Ġis Ġnull Ġto Ġcheck Ġif Ġthe Ġfile Ġexists ĊĠĠĠĠĠĠĠ ĠAssert . assertNotNull (" build ings . json Ġfile Ġdoes Ġnot Ġexist ", ĠinputStream ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠIf Ġthe ĠExternal Ġfile Ġexists , Ġthen Ġthe Ġrepository Ġcan Ġbe Ġcreated . ĊĠĠĠ Ġprivate Ġvar Ġinstance : ĠMap Repository Ġ= ĠMap Repository . getInstance ( context ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġget Camp uses Test () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Assert Ġcamp uses Ġare Ġreturned Ġas Ġa Ġlist ĊĠĠĠĠĠĠĠ Ġval Ġcamp uses : ĠList < Camp us > Ġ= Ġinstance . getC amp uses () ĊĠĠĠĠĠĠĠ ĠAssert . assertNotNull ( camp uses ) ĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( camp uses Ġis ĠList < Camp us >) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġcreate Camp uses Test () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠAssert Ġcamp us Ġvariables Ġare Ġwell Ġassigned ĊĠĠĠĠĠĠĠ Ġval Ġcamp uses : ĠList < Camp us > Ġ= Ġinstance . getC amp uses () ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( camp uses [ 0 ]. name , Ġ" SG W ") ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( camp uses [ 0 ]. getLocation (), ĠLat Lng ( 4 5 . 4 9 5 7 8 4 , Ġ- 7 3 . 5 7 7 1 9 7 )) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( camp uses [ 1 ]. name , Ġ" Lo y ola ") ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( camp uses [ 1 ]. getLocation (), ĠLat Lng ( 4 5 . 4 5 8 2 2 0 , Ġ- 7 3 . 6 3 9 7 0 2 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Test Ġwhether Ġthe Ġbuild ings Ġfrom Ġthe Ġjson Ġwere Ġcorrectly Ġparsed . ĊĠĠĠ Ġ// Since Ġthe Ġmethod Ġtra ver ses Ġin Ġa Ġlinear Ġfashion , Ġverify ing Ġthe Ġfirst Ġand Ġlast Ġbuilding Ġis Ġsufficient . ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġget Build ings From JSON Test _ Valid Parsing () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠAssert Ġbuilding Ġvariables Ġwere Ġwell Ġassigned ĊĠĠĠĠĠĠĠ Ġval Ġs gw Build ings : ĠList < Building > Ġ= Ġinstance . getC amp uses ()[ 0 ]. get Build ings () ĊĠĠĠĠĠĠĠ Ġval Ġlo y ola Build ings : ĠList < Building > Ġ= Ġinstance . getC amp uses ()[ 1 ]. get Build ings () ĊĊĠĠĠĠĠĠĠ Ġ// Verify Ġfirst Ġbuilding : ĠHall ĊĠĠĠĠĠĠĠ Ġval Ġh Building : ĠBuilding Ġ= Ġs gw Build ings [ 0 ] ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( h Building . name , Ġ" H en ry ĠF . ĠHall ĠBuilding ", Ġh Building . name ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġh Building . get Open Hours (), Ġ" Monday \ t 7 a . m .- 1 1 p . m .\ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Tuesday \ t 7 a . m .- 1 1 p . m .\ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Wednesday \ t 7 a . m .- 1 1 p . m .\ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Thursday \ t 7 a . m .- 1 1 p . m .\ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Friday \ t 7 a . m .- 1 1 p . m .\ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Saturday \ t 7 a . m .- 1 1 p . m .\ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" S unday \ t 7 a . m .- 1 1 p . m .", Ġh Building . get Open Hours () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( h Building . getLocation (), ĠLat Lng ( 4 5 . 4 9 7 3 2 0 , Ġ- 7 3 . 5 7 9 0 3 1 )) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġh Building . getAddress (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 1 4 5 5 , Ġde , ĠMa ison ne uve ĠB lv d ĠW , ĠMon tr Ã© al , ĠQ C ĠH 3 G Ġ 1 M 8 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġh Building . getAddress () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġh Building . get Place Id (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Ch IJ td 6 Zh 2 o ay Uw RA u _ Cn RI fo Bw ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġh Building . get Place Id () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( h Building . get Center Location (), ĠLat Lng ( 4 5 . 4 9 7 3 2 0 , Ġ- 7 3 . 5 7 9 0 3 1 )) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġh Building . get Depart ments (), Ġ" Geo graphy , ĠPl anning Ġand ĠEnvironment \ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Polit ical ĠScience , ĠS oc io logy Ġand ĠAn th ro pology , ĠEconom ics \ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" School Ġof ĠIr ish ĠSt udies ", Ġh Building . get Depart ments () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġh Building . get Services (), Ġ" Welcome ĠCre w ĠOffice \ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" DB ĠC lar ke ĠThe at re \ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" De an Ġof ĠStudent s \ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Ab original ĠStudent ĠResource ĠCent re \ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Con cord ia ĠStudent ĠUnion ", Ġh Building . get Services () ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġh Building Polygon Options Options : ĠPolygon Options Ġ= Ġh Building . get Polygon Options () ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( h Building Polygon Options Options . fill Color , Ġ 4 2 8 9 5 4 4 5 1 0 . toInt ()) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( h Building Polygon Options Options . stroke Width , Ġ 2 F ) ĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( h Building Polygon Options Options . is Clickable ) ĊĊĠĠĠĠĠĠĠ Ġval Ġh Polygon Coordinates : ĠList < LatLng > Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLat Lng ( 4 5 . 4 9 7 1 6 4 , Ġ- 7 3 . 5 7 9 5 4 4 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLat Lng ( 4 5 . 4 9 7 7 1 0 , Ġ- 7 3 . 5 7 9 0 3 4 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLat Lng ( 4 5 . 4 9 7 3 7 3 , Ġ- 7 3 . 5 7 8 3 3 8 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLat Lng ( 4 5 . 4 9 6 8 2 8 , Ġ- 7 3 . 5 7 8 8 5 0 ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( h Building Polygon Options Options . points , Ġh Polygon Coordinates ) ĊĊĠĠĠĠĠĠĠ Ġval Ġh Marker Options : ĠMarker Options Ġ= Ġh Building . get Marker Options () ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( h Marker Options . position , ĠLat Lng ( 4 5 . 4 9 7 3 2 0 , Ġ- 7 3 . 5 7 9 0 3 1 )) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( h Marker Options . anchor U , Ġ 0 . 5 f ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( h Marker Options . anchor V , Ġ 0 . 5 f ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( h Marker Options . title , Ġ" H en ry ĠF . ĠHall ĠBuilding ") ĊĊĠĠĠĠĠĠĠ Ġ// Verify Ġlast Ġbuilding : ĠO sc ar ĠPet erson ĠCon cert ĠHall ĊĠĠĠĠĠĠĠ Ġval Ġpt building : ĠBuilding Ġ= Ġlo y ola Build ings [ 1 4 ] ĊĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( pt building . name , Ġ" Osc ar ĠPet erson ĠCon cert ĠHall ", Ġpt building . name ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpt building . get Open Hours (), Ġ" Monday \ t 9 a . m .- 5 p . m .\ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Tuesday \ t 9 a . m .- 5 p . m .\ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Wednesday \ t 9 a . m .- 5 p . m .\ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Thursday \ t 9 a . m .- 5 p . m .\ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Friday \ t 9 a . m .- 5 p . m .\ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Saturday \ t 9 a . m .- 5 p . m .\ n " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" S unday \ t 9 a . m .- 5 p . m .", Ġpt building . get Open Hours () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( pt building . getLocation (), ĠLat Lng ( 4 5 . 4 5 9 3 5 5 , Ġ- 7 3 . 6 3 8 9 7 6 )) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpt building . getAddress (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" 7 1 4 1 ĠSh er bro o ke ĠSt ĠW , ĠMont real , ĠQue bec ĠH 4 B Ġ 1 R 6 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpt building . getAddress () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpt building . get Place Id (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Ch IJ L 7 mz 8 TEX y Uw Ru 9 P 6 P 2 NM ZY U ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpt building . get Place Id () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( pt building . get Center Location (), ĠLat Lng ( 4 5 . 4 5 9 3 2 4 , Ġ- 7 3 . 6 3 8 9 6 0 )) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( pt building . get Depart ments (), Ġ" None ", Ġpt building . get Depart ments ()) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpt building . get Services (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Osc ar ĠPet erson ĠCon cert ĠHall ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpt building . get Services () ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġpt Building Polygon Options Options : ĠPolygon Options Ġ= Ġpt building . get Polygon Options () ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( pt Building Polygon Options Options . fill Color , Ġ 4 2 8 9 5 4 4 5 1 0 . toInt ()) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( pt Building Polygon Options Options . stroke Width , Ġ 2 F ) ĊĠĠĠĠĠĠĠ ĠAssert . assertTrue ( pt Building Polygon Options Options . is Clickable ) ĊĊĠĠĠĠĠĠĠ Ġval Ġpt Polygon Coordinates : ĠList < LatLng > Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLat Lng ( 4 5 . 4 5 9 3 1 6 5 , Ġ- 7 3 . 6 3 9 1 7 7 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLat Lng ( 4 5 . 4 5 9 3 3 4 4 , Ġ- 7 3 . 6 3 9 2 2 0 4 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLat Lng ( 4 5 . 4 5 9 3 5 0 8 , Ġ- 7 3 . 6 3 9 2 0 8 6 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLat Lng ( 4 5 . 4 5 9 3 5 9 8 , Ġ- 7 3 . 6 3 9 2 3 0 8 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLat Lng ( 4 5 . 4 5 9 4 8 1 3 , Ġ- 7 3 . 6 3 9 1 3 5 9 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLat Lng ( 4 5 . 4 5 9 3 0 1 0 , Ġ- 7 3 . 6 3 8 6 7 0 9 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLat Lng ( 4 5 . 4 5 9 1 6 2 2 , Ġ- 7 3 . 6 3 8 7 7 9 8 ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLat Lng ( 4 5 . 4 5 9 2 2 0 3 , Ġ- 7 3 . 6 3 8 9 2 7 3 ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( pt Building Polygon Options Options . points , Ġpt Polygon Coordinates ) ĊĊĠĠĠĠĠĠĠ Ġval Ġpt Marker Options : ĠMarker Options Ġ= Ġpt building . get Marker Options () ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( pt Marker Options . position , ĠLat Lng ( 4 5 . 4 5 9 3 2 4 , Ġ- 7 3 . 6 3 8 9 6 0 )) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( pt Marker Options . anchor U , Ġ 0 . 5 f ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( pt Marker Options . anchor V , Ġ 0 . 5 f ) ĊĠĠĠĠĠĠĠ ĠAssert . assertEquals ( pt Marker Options . title , Ġ" Osc ar ĠPet erson ĠCon cert ĠHall ") ĊĠĠĠ Ġ} Ċ } ĊĊ