/* Ċ Ġ* ĠCopyright Ġ 2 0 1 8 ĠThe ĠAndroid ĠOpen ĠSource ĠProject Ċ Ġ* Ċ Ġ* Ġ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 Ġandroidx . navigation Ċ Ċ import Ġandroidx . test . filters . Small Test Ċ import Ġandroidx . test . runner . Android JUnit 4 Ċ import Ġcom . google . common . truth . Truth . assert With Message Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ import Ġorg . mockito . Mockito . mock Ċ Ċ @ Small Test Ċ @ RunWith ( Android JUnit 4 :: class ) Ċ class ĠNav Graph Test Ġ{ ĊĠĠĠ Ġprivate Ġval Ġnav Graph Navigator Ġ= ĠNav Graph Navigator ( mock ( Navigator Provider :: class . java )) ĊĠĠĠ Ġprivate Ġval Ġnavigator Ġ= ĠNo Op Navigator () ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġplus Assign () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgraph Ġ= ĠNav Graph ( nav Graph Navigator ) ĊĠĠĠĠĠĠĠ Ġval Ġdestination Ġ= Ġnavigator . create Destination (). apply Ġ{ Ġid Ġ= ĠDEST INATION _ ID Ġ} ĊĠĠĠĠĠĠĠ Ġgraph Ġ+= Ġdestination ĊĠĠĠĠĠĠĠ Ġassert With Message (" plus Assign Ġdestination Ġshould Ġbe Ġretrieved Ġwith Ġget ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. that ( graph [ DEST INATION _ ID ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. is Same As ( destination ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġminus Assign () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgraph Ġ= ĠNav Graph ( nav Graph Navigator ) ĊĠĠĠĠĠĠĠ Ġval Ġdestination Ġ= Ġnavigator . create Destination (). apply Ġ{ Ġid Ġ= ĠDEST INATION _ ID Ġ} ĊĠĠĠĠĠĠĠ Ġgraph Ġ+= Ġdestination ĊĠĠĠĠĠĠĠ Ġassert With Message (" plus Assign Ġdestination Ġshould Ġbe Ġretrieved Ġwith Ġget ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. that ( graph [ DEST INATION _ ID ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. is Same As ( destination ) ĊĠĠĠĠĠĠĠ Ġgraph Ġ-= Ġdestination ĊĠĠĠĠĠĠĠ Ġassert With Message (" Destination Ġshould Ġbe Ġremoved Ġafter Ġminus Assign ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. that ( DEST INATION _ ID Ġin Ġgraph ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. isFalse () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġplus Assign Graph () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgraph Ġ= ĠNav Graph ( nav Graph Navigator ) ĊĠĠĠĠĠĠĠ Ġval Ġother Ġ= ĠNav Graph ( nav Graph Navigator ) ĊĠĠĠĠĠĠĠ Ġother Ġ+= Ġnavigator . create Destination (). apply Ġ{ Ġid Ġ= ĠDEST INATION _ ID Ġ} ĊĠĠĠĠĠĠĠ Ġother Ġ+= Ġnavigator . create Destination (). apply Ġ{ Ġid Ġ= ĠSE COND _ DEST INATION _ ID Ġ} ĊĠĠĠĠĠĠĠ Ġgraph Ġ+= Ġother ĊĠĠĠĠĠĠĠ Ġassert With Message (" Nav Graph Ġshould Ġhave Ġdestination 1 Ġfrom Ġother ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. that ( DEST INATION _ ID Ġin Ġgraph ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. isTrue () ĊĠĠĠĠĠĠĠ Ġassert With Message (" other Ġnav Ġgraph Ġshould Ġnot Ġhave Ġdestination 1 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. that ( DEST INATION _ ID Ġin Ġother ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. isFalse () ĊĊĠĠĠĠĠĠĠ Ġassert With Message (" Nav Graph Ġshould Ġhave Ġdestination 2 Ġfrom Ġother ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. that ( SECOND _ DEST INATION _ ID Ġin Ġgraph ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. isTrue () ĊĠĠĠĠĠĠĠ Ġassert With Message (" other Ġnav Ġgraph Ġshould Ġnot Ġhave Ġdestination 2 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. that ( SECOND _ DEST INATION _ ID Ġin Ġother ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. isFalse () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ( expected Ġ= ĠIllegalArgumentException :: class ) ĊĠĠĠ Ġfun Ġget IllegalArgumentException () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgraph Ġ= ĠNav Graph ( nav Graph Navigator ) ĊĠĠĠĠĠĠĠ Ġgraph [ DEST INATION _ ID ] ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġconst Ġval ĠDEST INATION _ ID Ġ= Ġ 1 Ċ private Ġconst Ġval ĠSE COND _ DEST INATION _ ID Ġ= Ġ 2 Ċ