package Ġlt . mark mer kk . widgets . statistics Ċ Ċ import Ġcom . n ha ar man . mock it ok otlin 2 . do Return Ċ import Ġcom . n ha ar man . mock it ok otlin 2 . wh enever Ċ import Ġlt . mark mer kk . Log Storage Ċ import Ġlt . mark mer kk . Mocks Ċ import Ġlt . mark mer kk . Time Provider Test Ċ import Ġlt . mark mer kk . utils . hour glass . Hour G lass Ċ import Ġorg . assertj . core . api . Assertions . assertThat Ċ import Ġorg . assertj . core . api . Assertions . entry Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ import Ġorg . mockito . Mock Ċ import Ġorg . mockito . Mockito Annotations Ċ Ċ class ĠStatistics Presenter Map Data Test Ġ{ ĊĊĠĠĠ Ġ@ Mock Ġlateinit Ġvar Ġview : ĠStatistics Contract . View ĊĠĠĠ Ġ@ Mock Ġlateinit Ġvar Ġlog Storage : ĠLog Storage ĊĠĠĠ Ġ@ Mock Ġlateinit Ġvar Ġhour G lass : ĠHour G lass ĊĠĠĠ Ġlateinit Ġvar Ġpresenter : ĠStatistics Presenter ĊĊĠĠĠ Ġprivate Ġval Ġtime Provider Ġ= ĠTime Provider Test () ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ ĠMockito Annotations . init Mocks ( this ) ĊĠĠĠĠĠĠĠ Ġpresenter Ġ= ĠStatistics Presenter ( log Storage , Ġhour G lass ) ĊĠĠĠĠĠĠĠ Ġpresenter . on Attach ( view ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġvalid () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠAs semble ĊĠĠĠĠĠĠĠ Ġval Ġinput Logs Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMock s . create Local Log ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime Provider Ġ= Ġtime Provider , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Ġ= Ġtime Provider . now (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġend Ġ= Ġtime Provider . now (). plus Minutes ( 1 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtask Ġ= Ġ" DEV - 1 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġdo Return ( input Logs ). wh enever ( log Storage ). data ĊĊĠĠĠĠĠĠĠ Ġ// ĠAct ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġpresenter . map Data () ĊĊĠĠĠĠĠĠĠ Ġ// ĠAssert ĊĠĠĠĠĠĠĠ ĠassertThat ( result ). contains Exactly ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġentry (" DEV - 1 ", Ġ 5 4 0 0 0 0 ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġmultiple Diff Logs () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠAs semble ĊĠĠĠĠĠĠĠ Ġval Ġinput Logs Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMock s . create Local Log ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime Provider Ġ= Ġtime Provider , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Ġ= Ġtime Provider . now (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġend Ġ= Ġtime Provider . now (). plus Minutes ( 1 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtask Ġ= Ġ" DEV - 1 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMock s . create Local Log ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime Provider Ġ= Ġtime Provider , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Ġ= Ġtime Provider . now (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġend Ġ= Ġtime Provider . now (). plus Minutes ( 1 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtask Ġ= Ġ" DEV - 2 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġdo Return ( input Logs ). wh enever ( log Storage ). data ĊĊĠĠĠĠĠĠĠ Ġ// ĠAct ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġpresenter . map Data () ĊĊĠĠĠĠĠĠĠ Ġ// ĠAssert ĊĠĠĠĠĠĠĠ ĠassertThat ( result ). contains Exactly ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġentry (" DEV - 1 ", Ġ 5 4 0 0 0 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġentry (" DEV - 2 ", Ġ 5 4 0 0 0 0 ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġsame Logs () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠAs semble ĊĠĠĠĠĠĠĠ Ġval Ġinput Logs Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMock s . create Local Log ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime Provider Ġ= Ġtime Provider , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Ġ= Ġtime Provider . now (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġend Ġ= Ġtime Provider . now (). plus Minutes ( 1 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtask Ġ= Ġ" DEV - 1 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMock s . create Local Log ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime Provider Ġ= Ġtime Provider , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Ġ= Ġtime Provider . now (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġend Ġ= Ġtime Provider . now (). plus Minutes ( 1 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtask Ġ= Ġ" DEV - 1 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġdo Return ( input Logs ). wh enever ( log Storage ). data ĊĊĠĠĠĠĠĠĠ Ġ// ĠAct ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġpresenter . map Data () ĊĊĠĠĠĠĠĠĠ Ġ// ĠAssert ĊĠĠĠĠĠĠĠ ĠassertThat ( result ). contains Exactly ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġentry (" DEV - 1 ", Ġ 1 0 8 0 0 0 0 ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġcontains Empty Mappings () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠAs semble ĊĠĠĠĠĠĠĠ Ġval Ġinput Logs Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMock s . create Local Log ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime Provider Ġ= Ġtime Provider , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Ġ= Ġtime Provider . now (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġend Ġ= Ġtime Provider . now (). plus Minutes ( 1 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtask Ġ= Ġ" DEV - 1 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMock s . create Local Log ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime Provider Ġ= Ġtime Provider , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Ġ= Ġtime Provider . now (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġend Ġ= Ġtime Provider . now (). plus Minutes ( 1 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtask Ġ= Ġ" DEV - 1 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMock s . create Local Log ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime Provider Ġ= Ġtime Provider , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Ġ= Ġtime Provider . now (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġend Ġ= Ġtime Provider . now (). plus Minutes ( 5 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtask Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMock s . create Local Log ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime Provider Ġ= Ġtime Provider , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Ġ= Ġtime Provider . now (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġend Ġ= Ġtime Provider . now (). plus Minutes ( 4 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtask Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġdo Return ( input Logs ). wh enever ( log Storage ). data ĊĊĠĠĠĠĠĠĠ Ġ// ĠAct ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġpresenter . map Data () ĊĊĠĠĠĠĠĠĠ Ġ// ĠAssert ĊĠĠĠĠĠĠĠ ĠassertThat ( result ). contains Exactly ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġentry (" DEV - 1 ", Ġ 1 0 8 0 0 0 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġentry (" Not Ġmapped ", Ġ 4 2 0 0 0 0 ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ }