package Ġcom . n rx us . call log Ċ Ċ import Ġandroid . database . Cursor Ċ import Ġandroid . tele phony . PhoneNumber Utils Ċ import Ġio . mock k . every Ċ import Ġio . mock k . mock k Ċ import Ġio . mock k . mock k Static Ċ import Ġjava . util . Date Ċ import Ġorg . junit . jupiter . api . Assertions . assertEquals Ċ import Ġorg . junit . jupiter . api . BeforeEach Ċ import Ġorg . junit . jupiter . api . Test Ċ Ċ internal Ġclass ĠCall Log Test Ġ{ ĊĠĠĠ Ġ@ BeforeEach ĊĠĠĠ Ġ@ Suppress (" DE PREC ATION ") ĊĠĠĠ Ġfun Ġsetup () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġmock Ġthe Ġstatic Ġcall Ġto ĠPhone Number Utils ĊĠĠĠĠĠĠĠ Ġ// Ġconsider Ġmoving Ġthis Ġto Ġa Ġclass Ġthat Ġis Ġbetter Ġbuilt Ġfor Ġtesting ĊĠĠĠĠĠĠĠ Ġmock k Static ( PhoneNumber Utils :: class ) ĊĠĠĠĠĠĠĠ Ġevery Ġ{ ĠPhone Number Utils . format Number ( any ()) Ġ} Ġanswers Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . arg ( 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Entry # from Cursor Ġconverts Ġa Ġcursor Ġinto Ġa ĠEntry `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcursor Ġ= Ġmock k < Cursor >() ĊĠĠĠĠĠĠĠ Ġval Ġdate Ġ= ĠDate () ĊĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġcursor . getInt ( 0 ) Ġ} Ġreturns ĠAndroid Calls . OUT GO ING _ TYPE ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġcursor . getString ( 1 ) Ġ} Ġreturns Ġ" 5 5 5 2 3 4 5 " ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġcursor . getLong ( 2 ) Ġ} Ġreturns Ġdate . time ĊĊĠĠĠĠĠĠĠ Ġval Ġentry Ġ= ĠCall Log . Entry . from Cursor ( cursor ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCall Log . Entry ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnumber Ġ= Ġ" 5 5 5 2 3 4 5 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdirection Ġ= ĠCall Log . Direction . Outgoing , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime Ġ= Ġdate ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġentry ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠTODO : ĠInvest igate Ġusing Ġtable / parameter ized Ġtests ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Direction # from Type Ġmaps Ġandroid Ġcall Ġtypes Ġinto Ġa Ġdirection `() Ġ{ ĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCall Log . Direction . from Type ( Android Calls . OUT GO ING _ TYPE ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCall Log . Direction . Outgoing ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCall Log . Direction . from Type ( Android Calls . IN COM ING _ TYPE ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCall Log . Direction . Incoming ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCall Log . Direction . from Type ( Android Calls . AN SW ER ED _ EXTERN ALLY _ TYPE ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCall Log . Direction . Incoming ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCall Log . Direction . from Type ( Android Calls . BLOCK ED _ TYPE ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCall Log . Direction . Incoming ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCall Log . Direction . from Type ( Android Calls . MIS SED _ TYPE ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCall Log . Direction . Incoming ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCall Log . Direction . from Type ( Android Calls . RE JECT ED _ TYPE ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCall Log . Direction . Incoming ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCall Log . Direction . from Type ( Android Calls . VOICE MAIL _ TYPE ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCall Log . Direction . Incoming ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ