package Ġn tn u . id att 2 1 0 5 . section . controller Ċ Ċ import Ġcom . fasterxml . jackson . databind . ObjectMapper Ċ import Ġcom . jay way . json path . Json Path Ċ import Ġn tn u . id att 2 1 0 5 . factories . Section Factory Ċ import Ġn tn u . id att 2 1 0 5 . factories . User Reservation Factory Ċ import Ġn tn u . id att 2 1 0 5 . reservation . repository . Reservation Repository Ċ import Ġn tn u . id att 2 1 0 5 . section . dto . Create Section Request Ċ import Ġn tn u . id att 2 1 0 5 . section . model . Section Ċ import Ġn tn u . id att 2 1 0 5 . section . repository . Section Repository Ċ import Ġn tn u . id att 2 1 0 5 . user . model . Role Type Ċ import Ġn tn u . id att 2 1 0 5 . user . repository . UserRepository Ċ import Ġorg . assertj . core . api . Assertions . assertThat Ċ import Ġorg . hamcrest . Matchers Ċ import Ġorg . hamcrest . Matchers . has Item Ċ import Ġorg . junit . jupiter . api . After Each Ċ import Ġorg . junit . jupiter . api . BeforeEach Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . springframework . beans . factory . annotation . Autowired Ċ import Ġorg . springframework . boot . test . autoconfigure . web . servlet . Auto Configure MockMvc Ċ import Ġorg . springframework . boot . test . context . SpringBootTest Ċ import Ġorg . springframework . http . MediaType Ċ import Ġorg . springframework . security . test . context . support . With Mock User Ċ import Ġorg . springframework . test . web . servlet . MockMvc Ċ import Ġorg . springframework . test . web . servlet . request . MockMvc Request Builders .* Ċ import Ġorg . springframework . test . web . servlet . result . MockMvc Result Matchers .* Ċ import Ġjava . time . Z onedDateTime Ċ import Ġjava . util .* Ċ Ċ @ SpringBootTest Ċ @ Auto Configure MockMvc Ċ class ĠSection Controller Impl Test Ġ{ ĊĊĠĠĠ Ġprivate Ġval ĠURL Ġ= Ġ"/ sections /" ĊĠĠĠ Ġprivate Ġfun Ġget Stat URL ( section : ĠSection ) Ġ= Ġ"/ sections /${ section . id }/ statistics /" ĊĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġprivate Ġlateinit Ġvar ĠobjectMapper : ĠObjectMapper ĊĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm vc : ĠMock Mvc ĊĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġsection Repository : ĠSection Repository ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġsection : ĠSection ĊĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġreservation Repository : ĠReser vation Repository ĊĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġuser Repository : ĠUser Repository ĊĊĠĠĠ Ġ@ BeforeEach ĊĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠ Ġsection Ġ= ĠSection Factory (). ` object ` ĊĠĠĠĠĠĠĠ Ġsection Ġ= Ġsection Repository . save ( section ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ After Each ĊĠĠĠ Ġfun Ġclean Up () Ġ{ ĊĠĠĠĠĠĠĠ Ġreservation Repository . delete All () ĊĠĠĠĠĠĠĠ Ġsection Repository . delete All () ĊĠĠĠĠĠĠĠ Ġuser Repository . delete All () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ With Mock User ( value Ġ= Ġ" spring ") ĊĠĠĠ Ġfun Ġ` test Ġsection Ġcontroller ĠGET Ġall Ġreturns ĠOK Ġand Ġpage Ġof Ġsections `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnew Section Ġ= ĠSection Factory (). ` object ` ĊĠĠĠĠĠĠĠ Ġnew Section . parent Ġ= Ġsection ĊĠĠĠĠĠĠĠ Ġsection Repository . save ( new Section ) ĊĠĠĠĠĠĠĠ Ġthis . mvc . perform ( get ( URL )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( status (). is Ok ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( content (). contentType ( MediaType . APPLICATION _ JSON )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( json Path (" $. content .[ * ]. name ", Ġhas Item ( section . name ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( json Path (" $. content .[ * ]. name ", Ġhas Item ( new Section . name ))) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ With Mock User ( value Ġ= Ġ" spring ") ĊĠĠĠ Ġfun Ġ` test Ġsection Ġcontroller ĠGET Ġreturns ĠOK Ġand Ġthe Ġsection `() Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . mvc . perform ( get ("$ URL { section Id }/ ", Ġsection . id . toString ())) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( status (). is Ok ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( content (). contentType ( MediaType . APPLICATION _ JSON )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( json Path ("\ $. name "). value ( section . name )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( json Path ("\ $. type "). value ( section . getType (). toString ())) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ With Mock User ( value Ġ= Ġ" spring ") ĊĠĠĠ Ġfun Ġ` test Ġsection Ġcontroller ĠGET Ġreturns Ġnot Ġfound `() Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . mvc . perform ( get ("$ URL { section Id }/ ", ĠUUID . randomUUID (). toString ())) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( status (). is NotFound ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ With Mock User ( value Ġ= Ġ" spring ", Ġroles Ġ= Ġ[ Role Type . USER , ĠRole Type . ADMIN ]) ĊĠĠĠ Ġfun Ġ` test Ġsection Ġcontroller ĠPOST Ġreturns ĠCreated Ġand Ġthe Ġcreated Ġsection `() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġthis . mvc . perform ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpost ( URL ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. contentType ( MediaType . APPLICATION _ JSON ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. content ( object Mapper . writeValue AsString ( section )) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( status (). is Created ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( json Path ("\ $. name "). value ( section . name )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ With Mock User ( value Ġ= Ġ" spring ", Ġroles Ġ= Ġ[ Role Type . USER , ĠRole Type . ADMIN ]) ĊĠĠĠ Ġfun Ġ` test Ġsection Ġcontroller ĠPOST Ġwith Ġnegative Ġcapacity Ġreturns ĠCreated Ġand Ġthe Ġcreated Ġsection `() Ġ{ ĊĠĠĠĠĠĠĠ Ġsection Repository . save ( section . copy ( capacity Ġ= Ġ- 1 )) ĊĊĠĠĠĠĠĠĠ Ġthis . mvc . perform ( post ( URL ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. contentType ( MediaType . APPLICATION _ JSON ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. content ( object Mapper . writeValue AsString ( section ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( status (). is Created ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( json Path ("\ $. name "). value ( section . name )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ With Mock User ( value Ġ= Ġ" spring ", Ġroles Ġ= Ġ[ Role Type . USER , ĠRole Type . ADMIN ]) ĊĠĠĠ Ġfun Ġ` test Ġsection Ġcontroller ĠPUT Ġreturns ĠOK Ġand Ġthe Ġupdated Ġsection `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġ" new Ġname " ĊĠĠĠĠĠĠĠ Ġsection . name Ġ= Ġname ĊĊĠĠĠĠĠĠĠ Ġthis . mvc . perform ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput ("$ URL { section Id }/ ", Ġsection . id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. contentType ( MediaType . APPLICATION _ JSON ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. content ( object Mapper . writeValue AsString ( section )) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( status (). is Ok ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( json Path ("\ $. name "). value ( name )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ With Mock User ( value Ġ= Ġ" spring ", Ġroles Ġ= Ġ[ Role Type . USER , ĠRole Type . ADMIN ]) ĊĠĠĠ Ġfun Ġ` test Ġsection Ġcontroller ĠPUT Ġreturns Ġnot Ġfound `() Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . mvc . perform ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput ("$ URL { section Id }/ ", ĠUUID . randomUUID (). toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. contentType (" application / json ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. content ( object Mapper . writeValue AsString ( section )) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( status (). is NotFound ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ With Mock User ( value Ġ= Ġ" spring ", Ġroles Ġ= Ġ[ Role Type . USER , ĠRole Type . ADMIN ]) ĊĠĠĠ Ġfun Ġ` test Ġsection Ġcontroller ĠDELETE Ġreturns ĠOK `() Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . mvc . perform ( delete ("$ URL { section Id }/ ", Ġsection . id )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( status (). is Ok ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ With Mock User ( value Ġ= Ġ" spring ", Ġroles Ġ= Ġ[ Role Type . USER , ĠRole Type . ADMIN ]) ĊĠĠĠ Ġfun Ġ` test Ġsection Ġcontroller ĠDELETE Ġreturn ĠNotFound `() Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . mvc . perform ( delete ("$ URL { section Id }/ ", ĠUUID . randomUUID (). toString ())) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( status (). is NotFound ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ With Mock User ( value Ġ= Ġ" spring ", Ġroles Ġ= Ġ[ Role Type . USER , ĠRole Type . ADMIN ]) ĊĠĠĠ Ġfun Ġ` test Ġsection Ġcontroller ĠPOST Ġwith ĠparentId Ġreturns Ġhttp Ġ 2 0 0 `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġchild Ġ= ĠCreate Section Request ( name Ġ= Ġsection . name , ĠparentId Ġ= Ġsection . id , Ġcapacity Ġ= Ġsection . capacity Ġ- Ġ 1 ) ĊĊĠĠĠĠĠĠĠ Ġthis . mvc . perform ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpost ( URL ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. contentType ( MediaType . APPLICATION _ JSON ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. content ( object Mapper . writeValue AsString ( child )) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( status (). is Created ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( json Path ("\ $. name "). value ( section . name )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ With Mock User ( value Ġ= Ġ" spring ", Ġroles Ġ= Ġ[ Role Type . USER , ĠRole Type . ADMIN ]) ĊĠĠĠ Ġfun Ġ` test Ġsection Ġcontroller ĠPOST Ġwith ĠparentId Ġadds Ġparent Ġto Ġchild `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġchild Ġ= ĠCreate Section Request ( name Ġ= Ġsection . name , ĠparentId Ġ= Ġsection . id , Ġcapacity Ġ= Ġsection . capacity Ġ- Ġ 1 ) ĊĊĠĠĠĠĠĠĠ Ġval Ġm vc Result Ġ= Ġthis . mvc . perform ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpost ( URL ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. contentType ( MediaType . APPLICATION _ JSON ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. content ( object Mapper . writeValue AsString ( child )) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andReturn () ĊĊĠĠĠĠĠĠĠ Ġval Ġresponse UUID : ĠString Ġ= ĠJson Path . read ( mvc Result . response . content AsString , Ġ"\ $. id ") ĊĠĠĠĠĠĠĠ Ġval Ġactual Id Ġ= ĠUUID . fromString ( response UUID ) ĊĠĠĠĠĠĠĠ Ġval Ġactual Section Ġ= Ġsection Repository . findById ( actual Id ). get () ĊĠĠĠĠĠĠĠ Ġval Ġparent Ġ= Ġsection Repository . findById ( section . id ). get () ĊĊĠĠĠĠĠĠĠ ĠassertThat ( actual Section . parent ?. id ). isEqualTo ( parent . id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ With Mock User ( value Ġ= Ġ" spring ", Ġroles Ġ= Ġ[ Role Type . USER , ĠRole Type . ADMIN ]) ĊĠĠĠ Ġfun Ġ` test Ġsection Ġcontroller ĠPOST Ġwith ĠparentId Ġadds Ġchild Ġto Ġparent `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġchild Ġ= ĠCreate Section Request ( name Ġ= Ġsection . name , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠparentId Ġ= Ġsection . id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcapacity Ġ= Ġsection . capacity Ġ- Ġ 1 ) ĊĊĠĠĠĠĠĠĠ Ġval Ġm vc Result Ġ= Ġthis . mvc . perform ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpost ( URL ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. contentType ( MediaType . APPLICATION _ JSON ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. content ( object Mapper . writeValue AsString ( child )) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andReturn () ĊĊĠĠĠĠĠĠĠ Ġval Ġresponse UUID : ĠString Ġ= ĠJson Path . read ( mvc Result . response . content AsString , Ġ"\ $. id ") ĊĠĠĠĠĠĠĠ Ġval Ġactual Child Id Ġ= ĠUUID . fromString ( response UUID ) ĊĊĠĠĠĠĠĠĠ Ġval Ġparent Ġ= Ġsection Repository . findById ( section . id ). get () ĊĠĠĠĠĠĠĠ Ġval Ġparent Has Actual Child Ġ= Ġparent . children . stream (). any Match Ġ{ Ġit . id Ġ== Ġactual Child Id Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertThat ( parent Has Actual Child ). isTrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ With Mock User ( value Ġ= Ġ" spring ", Ġroles Ġ= Ġ[ Role Type . USER , ĠRole Type . ADMIN ]) ĊĠĠĠ Ġfun Ġ` test Ġsection Ġcontroller ĠPOST Ġwith Ġchild Ġcapacity Ġgreater Ġthan Ġparent Ġcapacity Ġreturns Ġhttp Ġ 4 0 0 `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsection CreateRequest Ġ= ĠCreate Section Request ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġsection . name , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠparentId Ġ= Ġsection . id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcapacity Ġ= Ġsection . capacity Ġ+ Ġ 1 0 ) ĊĊĠĠĠĠĠĠĠ Ġm vc . perform ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpost ( URL ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. contentType ( MediaType . APPLICATION _ JSON ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. content ( object Mapper . writeValue AsString ( section CreateRequest )) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( status (). is BadRequest ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( json Path ("\ $. message "). isNotEmpty ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ With Mock User ( value Ġ= Ġ" spring ", Ġroles Ġ= Ġ[ Role Type . USER , ĠRole Type . ADMIN ]) ĊĠĠĠ Ġfun Ġ` test Ġsection Ġcontroller ĠPOST Ġwith Ġchild Ġcapacity Ġgreater Ġthan Ġparents Ġaccumulated Ġpre occup ation Ġdegree Ġreturns Ġhttp Ġ 4 0 0 `() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġchild Ġ= ĠSection Factory (). ` object ` ĊĠĠĠĠĠĠĠ Ġsection . children . add ( child ) ĊĠĠĠĠĠĠĠ Ġsection Repository . save ( section ) ĊĊĠĠĠĠĠĠĠ Ġval Ġsection CreateRequest Ġ= ĠCreate Section Request ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġsection . name , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠparentId Ġ= Ġsection . id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcapacity Ġ= Ġsection . capacity Ġ+ Ġ 1 0 ) ĊĊĠĠĠĠĠĠĠ Ġm vc . perform ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpost ( URL ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. contentType ( MediaType . APPLICATION _ JSON ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. content ( object Mapper . writeValue AsString ( section CreateRequest )) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( status (). is BadRequest ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( json Path ("\ $. message "). isNotEmpty ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ With Mock User ( value Ġ= Ġ" spring ", Ġroles Ġ= Ġ[ Role Type . USER , ĠRole Type . ADMIN ]) ĊĠĠĠ Ġfun Ġ` test Ġsection Ġcontroller ĠGET Ġall Ġreturns ĠOK Ġand Ġpage Ġof Ġsections Ġwith Ġtime Ġfilter `() Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġnew Reservation Ġ= ĠUser Reservation Factory (). ` object ` ĊĠĠĠĠĠĠĠ Ġuser Repository . save ( new Reservation . user !! ) ĊĠĠĠĠĠĠĠ Ġsection Repository . save ( new Reservation . section !! ) ĊĠĠĠĠĠĠĠ Ġnew Reservation . from Time Ġ= ĠZ onedDateTime . now (). minus Days ( 5 0 ) ĊĠĠĠĠĠĠĠ Ġnew Reservation . to Time Ġ= ĠZ onedDateTime . now (). minus Days ( 2 5 ) ĊĠĠĠĠĠĠĠ Ġnew Reservation Ġ= Ġreservation Repository . save ( new Reservation ) ĊĊĠĠĠĠĠĠĠ Ġthis . mvc . perform ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget ( URL ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. param (" to ", Ġnew Reservation . to Time ?. plus Hours ( 1 ). toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. param (" from ", Ġnew Reservation . from Time ?. minus Hours ( 1 ). toString ()) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( status (). is Ok ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( content (). contentType ( MediaType . APPLICATION _ JSON )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( json Path (" $. content .[ * ]. name ", Ġhas Item ( section . name ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( json Path (" $. content .[ * ]. name ", ĠMatch ers . not ( new Reservation . section ?. name ))) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ With Mock User ( value Ġ= Ġ" spring ", Ġroles Ġ= Ġ[ Role Type . USER , ĠRole Type . ADMIN ]) ĊĠĠĠ Ġfun Ġ` test Ġsection Ġcontroller ĠGET Ġall Ġreturns ĠOK Ġand Ġpage Ġof Ġsections Ġwith Ġsearch Ġon Ġname `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnew Section Ġ= ĠSection Factory (). ` object ` ĊĠĠĠĠĠĠĠ Ġnew Section . parent Ġ= Ġsection ĊĠĠĠĠĠĠĠ Ġsection Repository . save ( new Section ) ĊĠĠĠĠĠĠĠ Ġthis . mvc . perform ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget ( URL ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. param (" name ", Ġsection . name ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( status (). is Ok ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( content (). contentType ( MediaType . APPLICATION _ JSON )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( json Path (" $. content .[ * ]. name ", Ġhas Item ( section . name ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( json Path (" $. content .[ * ]. name ", ĠMatch ers . not ( new Section . name ))) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ With Mock User ( value Ġ= Ġ" spring ", Ġroles Ġ= Ġ[ Role Type . USER , ĠRole Type . ADMIN ]) ĊĠĠĠ Ġfun Ġ` test Ġsection Ġcontroller ĠGET Ġall Ġreturns ĠOK Ġand Ġpage Ġof Ġsections Ġwith Ġpartial Ġsearch Ġon Ġname `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnew Section Ġ= ĠSection Factory (). ` object ` ĊĠĠĠĠĠĠĠ Ġnew Section . parent Ġ= Ġsection ĊĠĠĠĠĠĠĠ Ġsection Repository . save ( new Section ) ĊĠĠĠĠĠĠĠ Ġval Ġlength Ġ= Ġsection . name . length ĊĠĠĠĠĠĠĠ Ġthis . mvc . perform ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget ( URL ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. param (" name ", Ġsection . name . substring ( 0 , Ġlength Ġ- Ġ 1 )) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( status (). is Ok ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( content (). contentType ( MediaType . APPLICATION _ JSON )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( json Path (" $. content .[ * ]. name ", Ġhas Item ( section . name ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( json Path (" $. content .[ * ]. name ", ĠMatch ers . not ( new Section . name ))) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ With Mock User ( roles Ġ= Ġ[ Role Type . ADMIN ]) ĊĠĠĠ Ġfun Ġ` test Ġstatistics Ġare Ġreturned Ġfor Ġcorrect Ġreservation `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnew Section Ġ= ĠSection Factory (). ` object ` ĊĠĠĠĠĠĠĠ Ġnew Section . parent Ġ= Ġsection ĊĠĠĠĠĠĠĠ Ġsection Repository . save ( new Section ) ĊĊĠĠĠĠĠĠĠ Ġval Ġreservation Ġ= ĠUser Reservation Factory (). ` object ` ĊĠĠĠĠĠĠĠ Ġreservation . section Ġ= Ġnew Section ĊĠĠĠĠĠĠĠ Ġreservation . from Time Ġ= ĠZ onedDateTime . now (). minus Hours ( 1 ) ĊĠĠĠĠĠĠĠ Ġreservation . to Time Ġ= ĠZ onedDateTime . now (). plus Hours ( 1 ) ĊĠĠĠĠĠĠĠ Ġnew Section . user Reservation . add ( reservation ) ĊĊĠĠĠĠĠĠĠ Ġuser Repository . save ( reservation . user !! ) ĊĠĠĠĠĠĠĠ Ġreservation Repository . save ( reservation ) ĊĊĠĠĠĠĠĠĠ Ġthis . mvc . perform ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget ( get Stat URL ( new Section )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. param (" to Time Before ", Ġreservation . to Time !!. plus Hours ( 1 ). toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. param (" from Time After ", Ġreservation . from Time !!. minus Hours ( 1 ). toString ()) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( status (). is Ok ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( content (). contentType ( MediaType . APPLICATION _ JSON )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( json Path (" $. nr Of Reservation "). value ( 1 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( json Path (" $. hours Of Reservation "). value ( 2 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( json Path (" $. days With Reservation "). value ( 1 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( json Path (" $. user Reservation Count "). value ( 1 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ With Mock User ( roles Ġ= Ġ[ Role Type . ADMIN ]) ĊĠĠĠ Ġfun Ġ` test Ġstatistics Ġare Ġnot Ġreturn Ġwhen Ġincorrect Ġdate Ġis Ġgiven `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnew Section Ġ= ĠSection Factory (). ` object ` ĊĠĠĠĠĠĠĠ Ġnew Section . parent Ġ= Ġsection ĊĠĠĠĠĠĠĠ Ġsection Repository . save ( new Section ) ĊĊĠĠĠĠĠĠĠ Ġval Ġreservation Ġ= ĠUser Reservation Factory (). ` object ` ĊĠĠĠĠĠĠĠ Ġreservation . section Ġ= Ġnew Section ĊĠĠĠĠĠĠĠ Ġreservation . from Time Ġ= ĠZ onedDateTime . now (). minus Hours ( 1 ) ĊĠĠĠĠĠĠĠ Ġreservation . to Time Ġ= ĠZ onedDateTime . now (). plus Hours ( 1 ) ĊĠĠĠĠĠĠĠ Ġnew Section . user Reservation . add ( reservation ) ĊĊĠĠĠĠĠĠĠ Ġuser Repository . save ( reservation . user !! ) ĊĠĠĠĠĠĠĠ Ġreservation Repository . save ( reservation ) ĊĊĠĠĠĠĠĠĠ Ġthis . mvc . perform ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget ( get Stat URL ( new Section )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. param (" to Time Before ", Ġreservation . to Time !!. plus Years ( 1 ). toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. param (" from Time After ", Ġreservation . from Time !!. plus Years ( 1 ). toString ()) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( status (). is Ok ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ With Mock User ( roles Ġ= Ġ[ Role Type . ADMIN ]) ĊĠĠĠ Ġfun Ġ` test Ġstatistics Ġare Ġreturned Ġcorrect Ġwhen Ġtwo Ġre servations Ġis Ġwithin Ġthe Ġspan `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnew Section Ġ= ĠSection Factory (). ` object ` ĊĠĠĠĠĠĠĠ Ġnew Section . parent Ġ= Ġsection ĊĠĠĠĠĠĠĠ Ġsection Repository . save ( new Section ) ĊĊĠĠĠĠĠĠĠ Ġval Ġreservation 1 Ġ= ĠUser Reservation Factory (). ` object ` ĊĠĠĠĠĠĠĠ Ġreservation 1 . section Ġ= Ġnew Section ĊĠĠĠĠĠĠĠ Ġreservation 1 . from Time Ġ= ĠZ onedDateTime . now (). minus Hours ( 1 ) ĊĠĠĠĠĠĠĠ Ġreservation 1 . to Time Ġ= ĠZ onedDateTime . now (). plus Hours ( 1 ) ĊĠĠĠĠĠĠĠ Ġnew Section . user Reservation . add ( reservation 1 ) ĊĊĠĠĠĠĠĠĠ Ġval Ġreservation 2 Ġ= ĠUser Reservation Factory (). ` object ` ĊĠĠĠĠĠĠĠ Ġreservation 2 . section Ġ= Ġnew Section ĊĠĠĠĠĠĠĠ Ġreservation 2 . from Time Ġ= ĠZ onedDateTime . now (). plus Hours ( 2 ) ĊĠĠĠĠĠĠĠ Ġreservation 2 . to Time Ġ= ĠZ onedDateTime . now (). plus Hours ( 4 ) ĊĠĠĠĠĠĠĠ Ġnew Section . user Reservation . add ( reservation 2 ) ĊĊĠĠĠĠĠĠĠ Ġuser Repository . save ( reservation 1 . user !! ) ĊĠĠĠĠĠĠĠ Ġreservation Repository . save ( reservation 1 ) ĊĠĠĠĠĠĠĠ Ġuser Repository . save ( reservation 2 . user !! ) ĊĠĠĠĠĠĠĠ Ġreservation Repository . save ( reservation 2 ) ĊĊĠĠĠĠĠĠĠ Ġthis . mvc . perform ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget ( get Stat URL ( new Section )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. param (" to Time Before ", ĠZ onedDateTime . now (). plus Days ( 1 ). toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. param (" from Time After ", ĠZ onedDateTime . now (). minus Days ( 1 ). toString ()) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( status (). is Ok ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( content (). contentType ( MediaType . APPLICATION _ JSON )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( json Path (" $. nr Of Reservation "). value ( 2 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( json Path (" $. hours Of Reservation "). value ( 4 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( json Path (" $. days With Reservation "). value ( 1 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( json Path (" $. user Reservation Count "). value ( 2 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ With Mock User ( roles Ġ= Ġ[ Role Type . ADMIN ]) ĊĠĠĠ Ġfun Ġ` test Ġstatistics Ġare Ġreturned Ġcorrect Ġwhen Ġtwo Ġre servations Ġin Ġdifferent Ġsections Ġis Ġwithin Ġthe Ġspan `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcorrect Section Ġ= ĠSection Factory (). ` object ` ĊĠĠĠĠĠĠĠ Ġcorrect Section . parent Ġ= Ġsection ĊĠĠĠĠĠĠĠ Ġsection Repository . save ( correct Section ) ĊĊĠĠĠĠĠĠĠ Ġval Ġwrong Section Ġ= ĠSection Factory (). ` object ` ĊĠĠĠĠĠĠĠ Ġwrong Section . parent Ġ= Ġsection ĊĠĠĠĠĠĠĠ Ġsection Repository . save ( wrong Section ) ĊĊĠĠĠĠĠĠĠ Ġval Ġcorrect Reservation Ġ= ĠUser Reservation Factory (). ` object ` ĊĠĠĠĠĠĠĠ Ġcorrect Reservation . section Ġ= Ġcorrect Section ĊĠĠĠĠĠĠĠ Ġcorrect Reservation . from Time Ġ= ĠZ onedDateTime . now (). minus Hours ( 1 ) ĊĠĠĠĠĠĠĠ Ġcorrect Reservation . to Time Ġ= ĠZ onedDateTime . now (). plus Hours ( 1 ) ĊĠĠĠĠĠĠĠ Ġcorrect Section . user Reservation . add ( correct Reservation ) ĊĊĠĠĠĠĠĠĠ Ġval Ġwrong Reservation Ġ= ĠUser Reservation Factory (). ` object ` ĊĠĠĠĠĠĠĠ Ġwrong Reservation . section Ġ= Ġwrong Section ĊĠĠĠĠĠĠĠ Ġwrong Reservation . from Time Ġ= ĠZ onedDateTime . now (). plus Hours ( 2 ) ĊĠĠĠĠĠĠĠ Ġwrong Reservation . to Time Ġ= ĠZ onedDateTime . now (). plus Hours ( 4 ) ĊĠĠĠĠĠĠĠ Ġwrong Section . user Reservation . add ( wrong Reservation ) ĊĊĠĠĠĠĠĠĠ Ġuser Repository . save ( correct Reservation . user !! ) ĊĠĠĠĠĠĠĠ Ġreservation Repository . save ( correct Reservation ) ĊĠĠĠĠĠĠĠ Ġuser Repository . save ( wrong Reservation . user !! ) ĊĠĠĠĠĠĠĠ Ġreservation Repository . save ( wrong Reservation ) ĊĊĠĠĠĠĠĠĠ Ġthis . mvc . perform ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget ( get Stat URL ( correct Section )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. param (" to Time Before ", ĠZ onedDateTime . now (). plus Days ( 1 ). toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. param (" from Time After ", ĠZ onedDateTime . now (). minus Days ( 1 ). toString ()) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( status (). is Ok ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( content (). contentType ( MediaType . APPLICATION _ JSON )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( json Path (" $. nr Of Reservation "). value ( 1 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( json Path (" $. hours Of Reservation "). value ( 2 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( json Path (" $. days With Reservation "). value ( 1 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( json Path (" $. user Reservation Count "). value ( 1 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ With Mock User ( roles Ġ= Ġ[ Role Type . ADMIN ]) ĊĠĠĠ Ġfun Ġ` test Ġstatistics Ġare Ġreturned Ġcorrect Ġwhen Ġmultiple Ġre servations Ġis Ġover Ġa Ġbig Ġspan `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnew Section Ġ= ĠSection Factory (). ` object ` ĊĠĠĠĠĠĠĠ Ġnew Section . parent Ġ= Ġsection ĊĠĠĠĠĠĠĠ Ġsection Repository . save ( new Section ) ĊĊĠĠĠĠĠĠĠ Ġval Ġreservation 1 Ġ= ĠUser Reservation Factory (). ` object ` ĊĠĠĠĠĠĠĠ Ġreservation 1 . section Ġ= Ġnew Section ĊĠĠĠĠĠĠĠ Ġreservation 1 . from Time Ġ= ĠZ onedDateTime . now (). minus Hours ( 1 ) ĊĠĠĠĠĠĠĠ Ġreservation 1 . to Time Ġ= ĠZ onedDateTime . now (). plus Hours ( 1 ) ĊĠĠĠĠĠĠĠ Ġnew Section . user Reservation . add ( reservation 1 ) ĊĊĠĠĠĠĠĠĠ Ġval Ġreservation 2 Ġ= ĠUser Reservation Factory (). ` object ` ĊĠĠĠĠĠĠĠ Ġreservation 2 . section Ġ= Ġnew Section ĊĠĠĠĠĠĠĠ Ġreservation 2 . from Time Ġ= ĠZ onedDateTime . now (). plus Days ( 1 ). plus Hours ( 2 ) ĊĠĠĠĠĠĠĠ Ġreservation 2 . to Time Ġ= ĠZ onedDateTime . now (). plus Days ( 1 ). plus Hours ( 4 ) ĊĠĠĠĠĠĠĠ Ġnew Section . user Reservation . add ( reservation 2 ) ĊĊĠĠĠĠĠĠĠ Ġval Ġreservation 3 Ġ= ĠUser Reservation Factory (). ` object ` ĊĠĠĠĠĠĠĠ Ġreservation 3 . section Ġ= Ġnew Section ĊĠĠĠĠĠĠĠ Ġreservation 3 . from Time Ġ= ĠZ onedDateTime . now (). plus Months ( 1 ). plus Hours ( 2 ) ĊĠĠĠĠĠĠĠ Ġreservation 3 . to Time Ġ= ĠZ onedDateTime . now (). plus Months ( 1 ). plus Hours ( 4 ) ĊĠĠĠĠĠĠĠ Ġnew Section . user Reservation . add ( reservation 3 ) ĊĊĠĠĠĠĠĠĠ Ġval Ġreservation 4 Ġ= ĠUser Reservation Factory (). ` object ` ĊĠĠĠĠĠĠĠ Ġreservation 4 . section Ġ= Ġnew Section ĊĠĠĠĠĠĠĠ Ġreservation 4 . from Time Ġ= ĠZ onedDateTime . now (). minus Months ( 1 ). plus Hours ( 2 ) ĊĠĠĠĠĠĠĠ Ġreservation 4 . to Time Ġ= ĠZ onedDateTime . now (). minus Months ( 1 ). plus Hours ( 4 ) ĊĠĠĠĠĠĠĠ Ġnew Section . user Reservation . add ( reservation 4 ) ĊĊĠĠĠĠĠĠĠ Ġuser Repository . save ( reservation 1 . user !! ) ĊĠĠĠĠĠĠĠ Ġreservation Repository . save ( reservation 1 ) ĊĠĠĠĠĠĠĠ Ġuser Repository . save ( reservation 2 . user !! ) ĊĠĠĠĠĠĠĠ Ġreservation Repository . save ( reservation 2 ) ĊĠĠĠĠĠĠĠ Ġuser Repository . save ( reservation 3 . user !! ) ĊĠĠĠĠĠĠĠ Ġreservation Repository . save ( reservation 3 ) ĊĠĠĠĠĠĠĠ Ġuser Repository . save ( reservation 4 . user !! ) ĊĠĠĠĠĠĠĠ Ġreservation Repository . save ( reservation 4 ) ĊĊĠĠĠĠĠĠĠ Ġthis . mvc . perform ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget ( get Stat URL ( new Section )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. param (" to Time Before ", ĠZ onedDateTime . now (). plus Years ( 1 ). toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. param (" from Time After ", ĠZ onedDateTime . now (). minus Years ( 1 ). toString ()) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( status (). is Ok ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( content (). contentType ( MediaType . APPLICATION _ JSON )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( json Path (" $. nr Of Reservation "). value ( 4 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( json Path (" $. hours Of Reservation "). value ( 8 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( json Path (" $. days With Reservation "). value ( 4 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( json Path (" $. user Reservation Count "). value ( 4 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġ@ With Mock User ( roles Ġ= Ġ[ Role Type . ADMIN ]) ĊĠĠĠ Ġfun Ġ` test Ġstatistics Ġare Ġreturned Ġonly Ġfor Ġre servations Ġwithin Ġthe Ġcorrect Ġbig Ġspan `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnew Section Ġ= ĠSection Factory (). ` object ` ĊĠĠĠĠĠĠĠ Ġnew Section . parent Ġ= Ġsection ĊĠĠĠĠĠĠĠ Ġsection Repository . save ( new Section ) ĊĊĠĠĠĠĠĠĠ Ġval Ġreservation 1 Ġ= ĠUser Reservation Factory (). ` object ` ĊĠĠĠĠĠĠĠ Ġreservation 1 . section Ġ= Ġnew Section ĊĠĠĠĠĠĠĠ Ġreservation 1 . from Time Ġ= ĠZ onedDateTime . now (). minus Hours ( 1 ) ĊĠĠĠĠĠĠĠ Ġreservation 1 . to Time Ġ= ĠZ onedDateTime . now (). plus Hours ( 1 ) ĊĠĠĠĠĠĠĠ Ġnew Section . user Reservation . add ( reservation 1 ) ĊĊĠĠĠĠĠĠĠ Ġval Ġreservation 2 Ġ= ĠUser Reservation Factory (). ` object ` ĊĠĠĠĠĠĠĠ Ġreservation 2 . section Ġ= Ġnew Section ĊĠĠĠĠĠĠĠ Ġreservation 2 . from Time Ġ= ĠZ onedDateTime . now (). plus Days ( 1 ). plus Hours ( 2 ) ĊĠĠĠĠĠĠĠ Ġreservation 2 . to Time Ġ= ĠZ onedDateTime . now (). plus Days ( 1 ). plus Hours ( 4 ) ĊĠĠĠĠĠĠĠ Ġnew Section . user Reservation . add ( reservation 2 ) ĊĊĠĠĠĠĠĠĠ Ġval Ġwrong Reservation 1 Ġ= ĠUser Reservation Factory (). ` object ` ĊĠĠĠĠĠĠĠ Ġwrong Reservation 1 . section Ġ= Ġnew Section ĊĠĠĠĠĠĠĠ Ġwrong Reservation 1 . from Time Ġ= ĠZ onedDateTime . now (). plus Years ( 2 ). plus Hours ( 2 ) ĊĠĠĠĠĠĠĠ Ġwrong Reservation 1 . to Time Ġ= ĠZ onedDateTime . now (). plus Years ( 2 ). plus Hours ( 4 ) ĊĠĠĠĠĠĠĠ Ġnew Section . user Reservation . add ( wrong Reservation 1 ) ĊĊĠĠĠĠĠĠĠ Ġval Ġwrong Reservation 2 Ġ= ĠUser Reservation Factory (). ` object ` ĊĠĠĠĠĠĠĠ Ġwrong Reservation 2 . section Ġ= Ġnew Section ĊĠĠĠĠĠĠĠ Ġwrong Reservation 2 . from Time Ġ= ĠZ onedDateTime . now (). minus Years ( 2 ). plus Hours ( 2 ) ĊĠĠĠĠĠĠĠ Ġwrong Reservation 2 . to Time Ġ= ĠZ onedDateTime . now (). minus Years ( 2 ). plus Hours ( 4 ) ĊĠĠĠĠĠĠĠ Ġnew Section . user Reservation . add ( wrong Reservation 2 ) ĊĊĠĠĠĠĠĠĠ Ġuser Repository . save ( reservation 1 . user !! ) ĊĠĠĠĠĠĠĠ Ġreservation Repository . save ( reservation 1 ) ĊĠĠĠĠĠĠĠ Ġuser Repository . save ( reservation 2 . user !! ) ĊĠĠĠĠĠĠĠ Ġreservation Repository . save ( reservation 2 ) ĊĠĠĠĠĠĠĠ Ġuser Repository . save ( wrong Reservation 1 . user !! ) ĊĠĠĠĠĠĠĠ Ġreservation Repository . save ( wrong Reservation 1 ) ĊĠĠĠĠĠĠĠ Ġuser Repository . save ( wrong Reservation 2 . user !! ) ĊĠĠĠĠĠĠĠ Ġreservation Repository . save ( wrong Reservation 2 ) ĊĊĠĠĠĠĠĠĠ Ġthis . mvc . perform ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget ( get Stat URL ( new Section )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. param (" to Time Before ", ĠZ onedDateTime . now (). plus Years ( 1 ). toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. param (" from Time After ", ĠZ onedDateTime . now (). minus Years ( 1 ). toString ()) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( status (). is Ok ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( content (). contentType ( MediaType . APPLICATION _ JSON )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( json Path (" $. nr Of Reservation "). value ( 2 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( json Path (" $. hours Of Reservation "). value ( 4 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( json Path (" $. days With Reservation "). value ( 2 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. andExpect ( json Path (" $. user Reservation Count "). value ( 2 )) ĊĠĠĠ Ġ} Ċ } Ċ