package Ġlt . mark mer kk . work logs Ċ Ċ import Ġcom . n ha ar man . mock it ok otlin 2 .* Ċ import Ġlt . mark mer kk .* Ċ import Ġlt . mark mer kk . exceptions . Auth Exception Ċ import Ġorg . junit . Before Ċ import Ġorg . junit . Test Ċ import Ġorg . mockito . Mock Ċ import Ġorg . mockito . Mockito Annotations Ċ import Ġrx . Single Ċ import Ġjava . lang . RuntimeException Ċ Ċ class ĠWork log Api Upload Logs Test Ġ{ ĊĊĠĠĠ Ġ@ Mock Ġlateinit Ġvar Ġj ira Client Provider : ĠJira Client Provider ĊĠĠĠ Ġ@ Mock Ġlateinit Ġvar Ġj ira Work log Interactor : ĠJira Work log Interactor ĊĠĠĠ Ġ@ Mock Ġlateinit Ġvar Ġticket Storage : ĠTicket Storage ĊĠĠĠ Ġ@ Mock Ġlateinit Ġvar Ġwork log Storage : ĠWork log Storage ĊĠĠĠ Ġ@ Mock Ġlateinit Ġvar Ġuser Settings : ĠUser Settings ĊĠĠĠ Ġlateinit Ġvar Ġwork log Api : ĠWork log Api ĊĊĠĠĠ Ġprivate Ġval Ġtime Provider Ġ= ĠTime Provider Test () ĊĊĠĠĠ Ġ@ Before ĊĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ ĠMockito Annotations . init Mocks ( this ) ĊĠĠĠĠĠĠĠ Ġwork log Api Ġ= ĠWork log Api ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime Provider , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġj ira Client Provider , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġj ira Work log Interactor , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġticket Storage , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwork log Storage ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġvalid Upload () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠAs semble ĊĠĠĠĠĠĠĠ Ġval Ġnow Ġ= Ġtime Provider . now () ĊĠĠĠĠĠĠĠ Ġval Ġlocal Log Ġ= ĠMock s . create Log ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime Provider , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġ 1 L , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Ġ= Ġnow , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġend Ġ= Ġnow . plus Minutes ( 5 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcode Ġ= Ġ" WT - 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcomment Ġ= Ġ" valid _ comment ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġremote Data Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġout Log Ġ= ĠMock s . create Log ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime Provider , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġ 1 L , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Ġ= Ġnow , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġend Ġ= Ġnow . plus Minutes ( 5 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcode Ġ= Ġ" WT - 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcomment Ġ= Ġ" valid _ comment ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġremote Data Ġ= ĠMock s . create Remote Data ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime Provider , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġremote Id Ġ= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġdo Return ( Single . just ( listOf ( local Log ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. wh enever ( work log Storage ). load Work logs ( any (), Ġany ()) ĊĠĠĠĠĠĠĠ Ġdo Return ( Single . just ( out Log )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. wh enever ( jira Work log Interactor ). upload Work log ( any (), Ġany ()) ĊĠĠĠĠĠĠĠ Ġdo Return ( Single . just ( 1 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. wh enever ( work log Storage ). insert OrUpdate ( any ()) ĊĊĠĠĠĠĠĠĠ Ġ// ĠAct ĊĠĠĠĠĠĠĠ Ġval Ġfetch Result Ġ= Ġwork log Api . upload Logs ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfetch Time Ġ= Ġnow , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Ġ= Ġnow . to LocalDate (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġend Ġ= Ġnow . plus Days ( 1 ). to LocalDate () ĊĠĠĠĠĠĠĠ Ġ). test () ĊĊĠĠĠĠĠĠĠ Ġ// ĠAssert ĊĠĠĠĠĠĠĠ Ġfetch Result . assert No Errors () ĊĠĠĠĠĠĠĠ Ġfetch Result . assert Completed () ĊĠĠĠĠĠĠĠ Ġverify ( jira Work log Interactor ). upload Work log ( any (), Ġeq ( local Log )) ĊĠĠĠĠĠĠĠ Ġverify ( work log Storage ). insert OrUpdate ( eq ( out Log )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġremote Log () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠAs semble ĊĠĠĠĠĠĠĠ Ġval Ġnow Ġ= Ġtime Provider . now () ĊĠĠĠĠĠĠĠ Ġval Ġlocal Log Ġ= ĠMock s . create Log ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime Provider , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġ 1 L , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Ġ= Ġnow , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġend Ġ= Ġnow . plus Minutes ( 5 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcode Ġ= Ġ" WT - 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcomment Ġ= Ġ" valid _ comment ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġremote Data Ġ= ĠMock s . create Remote Data ( time Provider , Ġremote Id Ġ= Ġ 2 ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġdo Return ( Single . just ( listOf ( local Log ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. wh enever ( work log Storage ). load Work logs ( any (), Ġany ()) ĊĊĠĠĠĠĠĠĠ Ġ// ĠAct ĊĠĠĠĠĠĠĠ Ġval Ġfetch Result Ġ= Ġwork log Api . upload Logs ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfetch Time Ġ= Ġnow , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Ġ= Ġnow . to LocalDate (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġend Ġ= Ġnow . plus Days ( 1 ). to LocalDate () ĊĠĠĠĠĠĠĠ Ġ). test () ĊĊĠĠĠĠĠĠĠ Ġ// ĠAssert ĊĠĠĠĠĠĠĠ Ġfetch Result . assert No Errors () ĊĠĠĠĠĠĠĠ Ġfetch Result . assert Completed () ĊĠĠĠĠĠĠĠ Ġverify ( jira Work log Interactor , Ġnever ()). upload Work log ( any (), Ġany ()) ĊĠĠĠĠĠĠĠ Ġverify ( work log Storage , Ġnever ()). insert OrUpdate ( any ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġerror Up loading () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠAs semble ĊĠĠĠĠĠĠĠ Ġval Ġnow Ġ= Ġtime Provider . now () ĊĠĠĠĠĠĠĠ Ġval Ġlocal Log Ġ= ĠMock s . create Log ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime Provider , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġ 1 L , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Ġ= Ġnow , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġend Ġ= Ġnow . plus Minutes ( 5 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcode Ġ= Ġ" WT - 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcomment Ġ= Ġ" valid _ comment ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġremote Data Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġout Log Ġ= ĠMock s . create Log ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime Provider , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġ 1 L , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Ġ= Ġnow , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġend Ġ= Ġnow . plus Minutes ( 5 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcode Ġ= Ġ" WT - 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcomment Ġ= Ġ" valid _ comment ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġremote Data Ġ= ĠMock s . create Remote Data ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime Provider , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġremote Id Ġ= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġdo Return ( Single . just ( listOf ( local Log ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. wh enever ( work log Storage ). load Work logs ( any (), Ġany ()) ĊĠĠĠĠĠĠĠ Ġdo Return ( Single . error < Any >( RuntimeException ())) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. wh enever ( jira Work log Interactor ). upload Work log ( any (), Ġany ()) ĊĊĠĠĠĠĠĠĠ Ġ// ĠAct ĊĠĠĠĠĠĠĠ Ġval Ġfetch Result Ġ= Ġwork log Api . upload Logs ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfetch Time Ġ= Ġnow , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Ġ= Ġnow . to LocalDate (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġend Ġ= Ġnow . plus Days ( 1 ). to LocalDate () ĊĠĠĠĠĠĠĠ Ġ). test () ĊĊĠĠĠĠĠĠĠ Ġ// ĠAssert ĊĠĠĠĠĠĠĠ Ġfetch Result . assert No Errors () ĊĠĠĠĠĠĠĠ Ġfetch Result . assert Completed () ĊĠĠĠĠĠĠĠ Ġverify ( jira Work log Interactor ). upload Work log ( any (), Ġeq ( local Log )) ĊĠĠĠĠĠĠĠ Ġverify ( work log Storage , Ġnever ()). insert OrUpdate ( eq ( out Log )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġauth Error () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠAs semble ĊĠĠĠĠĠĠĠ Ġval Ġnow Ġ= Ġtime Provider . now () ĊĠĠĠĠĠĠĠ Ġval Ġlocal Log Ġ= ĠMock s . create Log ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime Provider , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġ 1 L , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Ġ= Ġnow , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġend Ġ= Ġnow . plus Minutes ( 5 ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcode Ġ= Ġ" WT - 4 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcomment Ġ= Ġ" valid _ comment ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġremote Data Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġdo Return ( Single . just ( listOf ( local Log ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. wh enever ( work log Storage ). load Work logs ( any (), Ġany ()) ĊĠĠĠĠĠĠĠ Ġdo Return ( Single . error < Any >( J ira Mocks . create Auth Exception ())) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. wh enever ( jira Work log Interactor ). upload Work log ( any (), Ġany ()) ĊĊĠĠĠĠĠĠĠ Ġ// ĠAct ĊĠĠĠĠĠĠĠ Ġval Ġfetch Result Ġ= Ġwork log Api . upload Logs ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfetch Time Ġ= Ġnow , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Ġ= Ġnow . to LocalDate (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġend Ġ= Ġnow . plus Days ( 1 ). to LocalDate () ĊĠĠĠĠĠĠĠ Ġ). test () ĊĊĠĠĠĠĠĠĠ Ġ// ĠAssert ĊĠĠĠĠĠĠĠ Ġfetch Result . assert Error ( Auth Exception :: class . java ) ĊĠĠĠ Ġ} Ċ Ċ }