package Ġno . nav . su . se . bak over . service . rev ur der ing Ċ Ċ import Ġarrow . core . get Or Handle Ċ import Ġarrow . core . left Ċ import Ġarrow . core . non Empty ListOf Ċ import Ġarrow . core . right Ċ import Ġio . kot est . matchers . shouldBe Ċ import Ġno . nav . su . se . bak over . common . end OfMonth Ċ import Ġno . nav . su . se . bak over . common . peri ode . Per i ode Ċ import Ġno . nav . su . se . bak over . database . rev ur der ing . Rev ur der ing Repo Ċ import Ġno . nav . su . se . bak over . domain . gr un nl ag . G run nl ags data Og V ilk Ã¥r sv ur der inger Ċ import Ġno . nav . su . se . bak over . domain . gr un nl ag . single Full st end ig OrThrow Ċ import Ġno . nav . su . se . bak over . domain . op pd rag . sim uler ing . Sim uler ing Ċ import Ġno . nav . su . se . bak over . domain . op pg ave . Opp g ave Config Ċ import Ġno . nav . su . se . bak over . domain . op pg ave . Opp g ave Fe il Ċ import Ġno . nav . su . se . bak over . domain . op pg ave . Opp g ave Id Ċ import Ġno . nav . su . se . bak over . domain . person . K un ne Ik ke H ente Person Ċ import Ġno . nav . su . se . bak over . domain . rev ur der ing . Opp rett et Rev ur der ing Ċ import Ġno . nav . su . se . bak over . domain . rev ur der ing . Rev ur der ing Til At test ering Ċ import Ġno . nav . su . se . bak over . domain . rev ur der ing . Rev ur der ings utf all S om Ik ke St Ã¸ t tes Ċ import Ġno . nav . su . se . bak over . domain . v ilk Ã¥r . V ilk Ã¥r Ċ import Ġno . nav . su . se . bak over . service . arg That Ċ import Ġno . nav . su . se . bak over . service . op pg ave . Opp g ave Service Ċ import Ġno . nav . su . se . bak over . service . person . Person Service Ċ import Ġno . nav . su . se . bak over . service . stat ist ikk . Event Ċ import Ġno . nav . su . se . bak over . service . stat ist ikk . Event Observer Ċ import Ġno . nav . su . se . bak over . test . akt Ã¸ r Id Ċ import Ġno . nav . su . se . bak over . test . createFrom G run nl ag Ċ import Ġno . nav . su . se . bak over . test . fn r Ċ import Ġno . nav . su . se . bak over . test . form ue G run nl ag U ten E ps 0 In nv il get Ċ import Ġno . nav . su . se . bak over . test . form ue G run nl ag U ten E ps Av sl Ã¥ tt Ċ import Ġno . nav . su . se . bak over . test . gr un nl ags data En sl ig Med F rad rag Ċ import Ġno . nav . su . se . bak over . test . gr un nl ags data En sl ig U ten F rad rag Ċ import Ġno . nav . su . se . bak over . test . op prett et Rev ur der ing F ra In nv il getS Ã¸ kn ads be hand lings V ed tak Ċ import Ġno . nav . su . se . bak over . test . rev ur der ing Id Ċ import Ġno . nav . su . se . bak over . test . s aks be handler Ċ import Ġno . nav . su . se . bak over . test . s aks nummer Ċ import Ġno . nav . su . se . bak over . test . sim ul ert Rev ur der ing Opp h Ã¸ rt Uf Ã¸ re F ra In nv il getS Ã¸ kn ads be hand lings V ed tak Ċ import Ġno . nav . su . se . bak over . test . v ilk Ã¥r sv ur der inger Av sl Ã¥ tt Uf Ã¸ re Og In nv il get Form ue Ċ import Ġno . nav . su . se . bak over . test . v ilk Ã¥r sv ur der inger In nv il get Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . mockito . kotlin . any Ċ import Ġorg . mockito . kotlin . do Return Ċ import Ġorg . mockito . kotlin . in Order Ċ import Ġorg . mockito . kotlin . mock Ċ import Ġorg . mockito . kotlin . never Ċ import Ġorg . mockito . kotlin . verify Ċ import Ġorg . mockito . kotlin . verify No More Interactions Ċ import Ġjava . time . temporal . Ch rono Unit Ċ Ċ class ĠRev ur der ing Send Til At test ering Test Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` sender Ġtil Ġat test ering `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsim ul ert Rev ur der ing Ġ= ĠRev ur der ing TestUtils . sim ul ert Rev ur der ing In nv il get ĊĊĠĠĠĠĠĠĠ Ġval Ġrev ur der ing Repo Mock Ġ= Ġmock < Rev ur der ing Repo > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Ġ{ Ġh ent ( rev ur der ing Id ) Ġ} Ġdo Return Ġsim ul ert Rev ur der ing ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġperson Service Mock Ġ= Ġmock < Person Service > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Ġ{ Ġh ent A kt Ã¸ r Id ( any ()) Ġ} Ġdo Return Ġakt Ã¸ r Id . right () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġopp g ave Service Mock Ġ= Ġmock < Opp g ave Service > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Ġ{ Ġopp rett Opp g ave ( any ()) Ġ} Ġdo Return ĠO pp g ave Id (" op pg ave Id "). right () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Ġ{ Ġl uk k Opp g ave ( any ()) Ġ} Ġdo Return ĠUnit . right () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġevent Observer : ĠEvent Observer Ġ= Ġmock () ĊĊĠĠĠĠĠĠĠ Ġval Ġrev ur der ing Service Ġ= ĠRev ur der ing TestUtils . create Rev ur der ing Service ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrev ur der ing Repo Ġ= Ġrev ur der ing Repo Mock , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġperson Service Ġ= Ġperson Service Mock , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġopp g ave Service Ġ= Ġopp g ave Service Mock , ĊĠĠĠĠĠĠĠ Ġ). apply Ġ{ Ġadd Observer ( event Observer ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġactual Ġ= Ġrev ur der ing Service . send Til At test ering ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSend Til At test ering Request ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrev ur der ing Id Ġ= Ġrev ur der ing Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġs aks be handler Ġ= Ġs aks be handler , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġf rite k st Til B rev Ġ= Ġ" F rite k st ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġskal F Ã¸ re Til B rev ut sending Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ Ġ). get Or Handle Ġ{ Ġthrow ĠRuntimeException (" Sk al Ġik ke Ġkun ne Ġsk je ") Ġ} ĊĊĠĠĠĠĠĠĠ Ġin Order ( rev ur der ing Repo Mock , Ġperson Service Mock , Ġopp g ave Service Mock , Ġevent Observer ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( rev ur der ing Repo Mock ). h ent ( arg That Ġ{ Ġit ĠshouldBe Ġrev ur der ing Id Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( person Service Mock ). h ent A kt Ã¸ r Id ( arg That Ġ{ Ġit ĠshouldBe Ġfn r Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( rev ur der ing Repo Mock ). h ent Event ue ll Tid lig ere At test ering ( arg That Ġ{ Ġit ĠshouldBe Ġrev ur der ing Id Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( op pg ave Service Mock ). op prett Opp g ave ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġarg That Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit ĠshouldBe ĠO pp g ave Config . At tester Rev ur der ing ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġs aks nummer Ġ= Ġs aks nummer , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġakt Ã¸ r Id Ġ= Ġakt Ã¸ r Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtil ord net Ress urs Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( op pg ave Service Mock ). l uk k Opp g ave ( arg That Ġ{ Ġit ĠshouldBe Ġsim ul ert Rev ur der ing . op pg ave Id Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( rev ur der ing Repo Mock ). lag re ( arg That Ġ{ Ġit ĠshouldBe Ġactual Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( event Observer ). handle ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġarg That Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit ĠshouldBe ĠEvent . Stat ist ikk . Rev ur der ing Stat ist ikk . Rev ur der ing Til At test ering ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactual Ġas ĠRev ur der ing Til At test ering , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġverify No More Interactions ( rev ur der ing Repo Mock , Ġperson Service Mock , Ġopp g ave Service Mock ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` sender Ġik ke Ġtil Ġat test ering Ġh vis Ġrev ur der ing Ġer Ġik ke Ġsim ul ert `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġopp rett et Rev ur der ing Ġ= Ġopp rett et Rev ur der ing F ra In nv il getS Ã¸ kn ads be hand lings V ed tak (). second ĊĊĠĠĠĠĠĠĠ Ġval Ġrev ur der ing Repo Mock Ġ= Ġmock < Rev ur der ing Repo > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Ġ{ Ġh ent ( rev ur der ing Id ) Ġ} Ġdo Return Ġopp rett et Rev ur der ing ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠRev ur der ing TestUtils . create Rev ur der ing Service ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrev ur der ing Repo Ġ= Ġrev ur der ing Repo Mock , ĊĠĠĠĠĠĠĠ Ġ). send Til At test ering ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSend Til At test ering Request ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrev ur der ing Id Ġ= Ġrev ur der ing Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġs aks be handler Ġ= Ġs aks be handler , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġf rite k st Til B rev Ġ= Ġ" F rite k st ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġskal F Ã¸ re Til B rev ut sending Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġresult ĠshouldBe ĠK un ne Ik ke S ende Rev ur der ing Til At test ering . U gy ld ig Til stand ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠO pp rett et Rev ur der ing :: class , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRev ur der ing Til At test ering :: class , ĊĠĠĠĠĠĠĠ Ġ). left () ĊĊĠĠĠĠĠĠĠ Ġverify ( rev ur der ing Repo Mock ). h ent ( rev ur der ing Id ) ĊĠĠĠĠĠĠĠ Ġverify No More Interactions ( rev ur der ing Repo Mock ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` sender Ġik ke Ġtil Ġat test ering Ġh vis Ġh ent ing Ġav Ġakt Ã¸ r Id Ġfe iler `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrev ur der ing Repo Mock Ġ= Ġmock < Rev ur der ing Repo > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Ġ{ Ġh ent ( rev ur der ing Id ) Ġ} Ġdo Return ĠRev ur der ing TestUtils . sim ul ert Rev ur der ing In nv il get ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġperson Service Mock Ġ= Ġmock < Person Service > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Ġ{ Ġh ent A kt Ã¸ r Id ( any ()) Ġ} Ġdo Return ĠK un ne Ik ke H ente Person . F ant Ik ke Person . left () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġactual Ġ= ĠRev ur der ing TestUtils . create Rev ur der ing Service ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrev ur der ing Repo Ġ= Ġrev ur der ing Repo Mock , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġperson Service Ġ= Ġperson Service Mock , ĊĠĠĠĠĠĠĠ Ġ). send Til At test ering ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSend Til At test ering Request ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrev ur der ing Id Ġ= Ġrev ur der ing Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġs aks be handler Ġ= Ġs aks be handler , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġf rite k st Til B rev Ġ= Ġ" F rite k st ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġskal F Ã¸ re Til B rev ut sending Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġactual ĠshouldBe ĠK un ne Ik ke S ende Rev ur der ing Til At test ering . F ant Ik ke A kt Ã¸ r Id . left () ĊĊĠĠĠĠĠĠĠ Ġin Order ( rev ur der ing Repo Mock ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( rev ur der ing Repo Mock ). h ent ( rev ur der ing Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify No More Interactions ( rev ur der ing Repo Mock ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` sender Ġik ke Ġtil Ġat test ering Ġh vis Ġopp ret ting Ġav Ġopp g ave Ġfe iler `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrev ur der ing Repo Mock Ġ= Ġmock < Rev ur der ing Repo > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Ġ{ Ġh ent ( rev ur der ing Id ) Ġ} Ġdo Return ĠRev ur der ing TestUtils . sim ul ert Rev ur der ing In nv il get ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġperson Service Mock Ġ= Ġmock < Person Service > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Ġ{ Ġh ent A kt Ã¸ r Id ( any ()) Ġ} Ġdo Return Ġakt Ã¸ r Id . right () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġopp g ave Service Mock Ġ= Ġmock < Opp g ave Service > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Ġ{ Ġopp rett Opp g ave ( any ()) Ġ} Ġdo Return ĠO pp g ave Fe il . K un ne Ik ke Opp ret te Opp g ave . left () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġactual Ġ= ĠRev ur der ing TestUtils . create Rev ur der ing Service ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrev ur der ing Repo Ġ= Ġrev ur der ing Repo Mock , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġperson Service Ġ= Ġperson Service Mock , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġopp g ave Service Ġ= Ġopp g ave Service Mock , ĊĠĠĠĠĠĠĠ Ġ). send Til At test ering ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSend Til At test ering Request ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrev ur der ing Id Ġ= Ġrev ur der ing Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġs aks be handler Ġ= Ġs aks be handler , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġf rite k st Til B rev Ġ= Ġ" F rite k st ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġskal F Ã¸ re Til B rev ut sending Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġactual ĠshouldBe ĠK un ne Ik ke S ende Rev ur der ing Til At test ering . K un ne Ik ke Opp ret te Opp g ave . left () ĊĊĠĠĠĠĠĠĠ Ġin Order ( rev ur der ing Repo Mock , Ġperson Service Mock ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( rev ur der ing Repo Mock ). h ent ( rev ur der ing Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( person Service Mock ). h ent A kt Ã¸ r Id ( arg That Ġ{ Ġit ĠshouldBe Ġfn r Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( rev ur der ing Repo Mock ). h ent Event ue ll Tid lig ere At test ering ( rev ur der ing Id ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify No More Interactions ( rev ur der ing Repo Mock , Ġperson Service Mock ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` kan Ġik ke Ġs ende Ġrev ur der ing Ġmed Ġsim ul ert Ġfe il ut bet aling Ġtil Ġat test ering `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsim uler ing Mock Ġ= Ġmock < Sim uler ing > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Ġ{ Ġhar Fe il ut bet al inger () Ġ} Ġdo Return Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġrev ur der ing Repo Mock Ġ= Ġmock < Rev ur der ing Repo > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Ġ{ Ġh ent ( rev ur der ing Id ) Ġ} Ġdo Return ĠRev ur der ing TestUtils . sim ul ert Rev ur der ing In nv il get . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsim uler ing Ġ= Ġsim uler ing Mock , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġactual Ġ= ĠRev ur der ing TestUtils . create Rev ur der ing Service ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrev ur der ing Repo Ġ= Ġrev ur der ing Repo Mock , ĊĠĠĠĠĠĠĠ Ġ). send Til At test ering ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSend Til At test ering Request ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrev ur der ing Id Ġ= Ġrev ur der ing Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġs aks be handler Ġ= Ġs aks be handler , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġf rite k st Til B rev Ġ= Ġ" F rite k st ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġskal F Ã¸ re Til B rev ut sending Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġactual ĠshouldBe ĠK un ne Ik ke S ende Rev ur der ing Til At test ering . Fe il ut bet aling St Ã¸ t tes Ik ke . left () ĊĊĠĠĠĠĠĠĠ Ġverify ( rev ur der ing Repo Mock , Ġnever ()). lag re ( any ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` form ue op ph Ã¸ r ĠmÃ¥ Ġv Ã¦ re Ġf ra Ġf Ã¸ r ste ĠmÃ¥ ned `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġst Ã¸ nad sp eri ode Ġ= ĠRev ur der ing TestUtils . st Ã¸ nad sp eri ode N este M Ã¥ ned Og Tre M Ã¥ ned er F ram ĊĠĠĠĠĠĠĠ Ġval Ġrev ur der ing sp eri ode Ġ= Ġst Ã¸ nad sp eri ode . peri ode ĊĠĠĠĠĠĠĠ Ġval Ġrev ur der ing Repo Mock Ġ= Ġmock < Rev ur der ing Repo > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġf Ã¸ r ste Uf Ã¸ rev ur der ing sp eri ode Ġ= ĠPer i ode . create ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġf ra Og Med Ġ= Ġrev ur der ing sp eri ode . f ra Og Med , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtil Og Med Ġ= Ġrev ur der ing sp eri ode . f ra Og Med . end OfMonth (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġand re Uf Ã¸ rev ur der ing sp eri ode Ġ= ĠPer i ode . create ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġf ra Og Med Ġ= Ġrev ur der ing sp eri ode . f ra Og Med . plus ( 1 , ĠCh rono Unit . MONTH S ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtil Og Med Ġ= Ġrev ur der ing sp eri ode . til Og Med , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġv ilk Ã¥r sv ur der inger Ġ= Ġv ilk Ã¥r sv ur der inger In nv il get ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġper i ode Ġ= Ġrev ur der ing sp eri ode , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġform ue Ġ= ĠV ilk Ã¥r . Form ue . V ur der t . createFrom G run nl ag ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġg run nl ag Ġ= Ġnon Empty ListOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġform ue G run nl ag U ten E ps 0 In nv il get ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġper i ode Ġ= Ġf Ã¸ r ste Uf Ã¸ rev ur der ing sp eri ode , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġb osit u as jon Ġ= Ġg run nl ags data En sl ig U ten F rad rag (). b osit u as jon . single Full st end ig OrThrow (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġform ue G run nl ag U ten E ps Av sl Ã¥ tt ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġper i ode Ġ= Ġand re Uf Ã¸ rev ur der ing sp eri ode , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġb osit u as jon Ġ= Ġg run nl ags data En sl ig U ten F rad rag (). b osit u as jon . single Full st end ig OrThrow (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsim ul ert Rev ur der ing Opp h Ã¸ rt Uf Ã¸ re F ra In nv il getS Ã¸ kn ads be hand lings V ed tak Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsim ul ert Rev ur der ing Opp h Ã¸ rt Uf Ã¸ re F ra In nv il getS Ã¸ kn ads be hand lings V ed tak ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġst Ã¸ nad sp eri ode Ġ= Ġst Ã¸ nad sp eri ode , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrev ur der ing sp eri ode Ġ= Ġrev ur der ing sp eri ode , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġg run nl ags data Og V ilk Ã¥r sv ur der inger Ġ= ĠG run nl ags data Og V ilk Ã¥r sv ur der inger ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġg run nl ags data En sl ig U ten F rad rag ( peri ode Ġ= Ġrev ur der ing sp eri ode ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġv ilk Ã¥r sv ur der inger , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). second ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Ġ{ Ġh ent ( rev ur der ing Id ) Ġ} Ġdo Return Ġsim ul ert Rev ur der ing Opp h Ã¸ rt Uf Ã¸ re F ra In nv il getS Ã¸ kn ads be hand lings V ed tak ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġactual Ġ= ĠRev ur der ing TestUtils . create Rev ur der ing Service ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrev ur der ing Repo Ġ= Ġrev ur der ing Repo Mock , ĊĠĠĠĠĠĠĠ Ġ). send Til At test ering ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSend Til At test ering Request ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrev ur der ing Id Ġ= Ġrev ur der ing Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġs aks be handler Ġ= Ġs aks be handler , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġf rite k st Til B rev Ġ= Ġ" F rite k st ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġskal F Ã¸ re Til B rev ut sending Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġactual ĠshouldBe ĠK un ne Ik ke S ende Rev ur der ing Til At test ering . Rev ur der ings utf all St Ã¸ t tes Ik ke ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRev ur der ings utf all S om Ik ke St Ã¸ t tes . Opp h Ã¸ r Er Ik ke F ra F Ã¸ r ste M Ã¥ ned , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ Ġ). left () ĊĊĠĠĠĠĠĠĠ Ġverify ( rev ur der ing Repo Mock , Ġnever ()). lag re ( any ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` uf Ã¸ re op ph Ã¸ r Ġkan Ġik ke Ġg j Ã¸ res Ġi Ġkom bin as jon Ġmed Ġf rad r ags end ring er `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġst Ã¸ nad sp eri ode Ġ= ĠRev ur der ing TestUtils . st Ã¸ nad sp eri ode N este M Ã¥ ned Og Tre M Ã¥ ned er F ram ĊĠĠĠĠĠĠĠ Ġval Ġrev ur der ing sp eri ode Ġ= Ġst Ã¸ nad sp eri ode . peri ode ĊĠĠĠĠĠĠĠ Ġval Ġrev ur der ing Repo Mock Ġ= Ġmock < Rev ur der ing Repo > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Ġ{ Ġh ent ( rev ur der ing Id ) Ġ} Ġdo Return Ġsim ul ert Rev ur der ing Opp h Ã¸ rt Uf Ã¸ re F ra In nv il getS Ã¸ kn ads be hand lings V ed tak ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġst Ã¸ nad sp eri ode Ġ= Ġst Ã¸ nad sp eri ode , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrev ur der ing sp eri ode Ġ= Ġrev ur der ing sp eri ode , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġg run nl ags data Og V ilk Ã¥r sv ur der inger Ġ= Ġg run nl ags data En sl ig Med F rad rag ( peri ode Ġ= Ġrev ur der ing sp eri ode ). let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠG run nl ags data Og V ilk Ã¥r sv ur der inger ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġv ilk Ã¥r sv ur der inger Ġ= Ġv ilk Ã¥r sv ur der inger Av sl Ã¥ tt Uf Ã¸ re Og In nv il get Form ue ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġper i ode Ġ= Ġst Ã¸ nad sp eri ode . peri ode , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġb osit u as jon Ġ= Ġit . b osit u as jon . single Full st end ig OrThrow (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). second ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġactual Ġ= ĠRev ur der ing TestUtils . create Rev ur der ing Service ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrev ur der ing Repo Ġ= Ġrev ur der ing Repo Mock , ĊĠĠĠĠĠĠĠ Ġ). send Til At test ering ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSend Til At test ering Request ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrev ur der ing Id Ġ= Ġrev ur der ing Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġs aks be handler Ġ= Ġs aks be handler , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġf rite k st Til B rev Ġ= Ġ" F rite k st ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġskal F Ã¸ re Til B rev ut sending Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġactual ĠshouldBe ĠK un ne Ik ke S ende Rev ur der ing Til At test ering . Rev ur der ings utf all St Ã¸ t tes Ik ke ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRev ur der ings utf all S om Ik ke St Ã¸ t tes . Opp h Ã¸ r Og And re End ring er IK om bin as jon , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ Ġ). left () ĊĊĠĠĠĠĠĠĠ Ġverify ( rev ur der ing Repo Mock , Ġnever ()). lag re ( any ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` kan Ġik ke Ġs ende Ġrev ur der ing Ġmed Ġutf all Ġsom Ġik ke Ġst Ã¸ t tes Ġtil Ġat test ering Ġ- Ġsim uler ing Ġhar Ġfe il ub tb et aling `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsim uler ing Mock Ġ= Ġmock < Sim uler ing > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Ġ{ Ġhar Fe il ut bet al inger () Ġ} Ġdo Return Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġrev ur der ing Repo Mock Ġ= Ġmock < Rev ur der ing Repo > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Ġ{ Ġh ent ( rev ur der ing Id ) Ġ} Ġdo Return ĠRev ur der ing TestUtils . sim ul ert Rev ur der ing In nv il get . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsim uler ing Ġ= Ġsim uler ing Mock , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġactual Ġ= ĠRev ur der ing TestUtils . create Rev ur der ing Service ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrev ur der ing Repo Ġ= Ġrev ur der ing Repo Mock , ĊĠĠĠĠĠĠĠ Ġ). send Til At test ering ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSend Til At test ering Request ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrev ur der ing Id Ġ= Ġrev ur der ing Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġs aks be handler Ġ= Ġs aks be handler , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġf rite k st Til B rev Ġ= Ġ" F rite k st ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġskal F Ã¸ re Til B rev ut sending Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġactual ĠshouldBe ĠK un ne Ik ke S ende Rev ur der ing Til At test ering . Fe il ut bet aling St Ã¸ t tes Ik ke . left () ĊĊĠĠĠĠĠĠĠ Ġverify ( rev ur der ing Repo Mock , Ġnever ()). lag re ( any ()) ĊĠĠĠ Ġ} Ċ } Ċ