package Ġcom . github . has chi . domain . ha ush al ts bu ch Ċ Ċ import Ġcom . github . has chi . domain . ha ush al ts bu ch . testing . Die W elt Ċ import Ġcom . github . has chi . domain . ha ush al ts bu ch . testing . Invent ar E ing abe Ċ import Ġcom . github . has chi . domain . ha ush al ts bu ch . testing . Money Converter Ċ import Ġcom . github . has chi . domain . ha ush al ts bu ch . testing . V erm Ã¶g ens w ert Parameter Ċ import Ġcom . github . has chi . domain . ha ush al ts bu ch . testing . an lage ver m Ã¶ gen Ċ import Ġcom . github . has chi . domain . ha ush al ts bu ch . testing . sch ul den Ċ import Ġcom . github . has chi . domain . ha ush al ts bu ch . testing . um la uf ver m Ã¶ gen Ċ import Ġcom . github . has chi . dom in ium . ha ush al ts bu ch . core . model . commands . Been de Invent ur Ċ import Ġcom . github . has chi . dom in ium . ha ush al ts bu ch . core . model . commands . Begin ne Invent ur Ċ import Ġcom . github . has chi . dom in ium . ha ush al ts bu ch . core . model . commands . E rf asse Invent ar Ċ import Ġcom . github . has chi . dom in ium . ha ush al ts bu ch . core . model . queries . Le se Invent ar Ċ import Ġcom . github . has chi . dom in ium . ha ush al ts bu ch . core . model . values . Ag greg at ken nung Ċ import Ġcom . github . has chi . dom in ium . ha ush al ts bu ch . core . model . values . Invent ar Ċ import Ġcom . github . has chi . dom in ium . ha ush al ts bu ch . core . model . values . Re in ver m Ã¶ gen Ċ import Ġcom . github . has chi . dom in ium . ha ush al ts bu ch . core . model . values . Ver mo eg ens w ert Ċ import Ġcom . github . has chi . dom in ium . ha ush al ts bu ch . core . model . values . Ver mo eg ens wer te Ċ import Ġcom . github . has chi . dom in ium . ha ush al ts bu ch . core . model . values . W Ã¤h run gs be trag Ċ import Ġc ucumber . api . DataTable Ċ import Ġc ucumber . api . Transform Ċ import Ġc ucumber . api . java . de . An gen om men Ċ import Ġc ucumber . api . java . de . D ann Ċ import Ġc ucumber . api . java . de . Un d Ċ import Ġc ucumber . api . java . de . W enn Ċ import Ġc ucumber . deps . com . thought works . x stream . annotations . X Stream Converter Ċ import Ġorg . assertj . core . api . Assertions . assertThat Ċ import Ġjava . time . LocalDateTime Ċ import Ġjava . util . concurrent . Comp letableFuture Ċ Ċ class ĠIn vent ur Step Definition ( private Ġval Ġw elt : ĠDie W elt ) Ċ { ĊĊĠĠĠ Ġprivate Ġinline Ġfun Ġ< T , ĠR > Ġsync ( receiver : ĠT , Ġblock : ĠT . () Ġ-> ĠCompletableFuture < R >): ĠR ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġreceiver . block (). get () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ W enn ("^ ich Ġdie ĠIn vent ur Ġbegin ne $ ") ĊĠĠĠ Ġfun Ġ` w enn Ġich Ġdie ĠIn vent ur Ġbegin ne `() ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġw elt . akt uelle Invent ur Ġ= Ġsync ( w elt . invent ur ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsend ( Begin ne Invent ur ( Ag greg at ken nung . ne u ())) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ D ann ("^ w ird Ġme in ĠIn vent ar Ġle er Ġsein $ ") ĊĠĠĠ Ġfun Ġwird Me in Invent ar Le er Se in () ĊĠĠĠ Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġinvent ar Ġ= Ġw elt . query . query ( Le se Invent ar ( w elt . akt uelle Invent ur ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIn vent ar :: class . java ) ĊĠĠĠĠĠĠĠ ĠassertThat ( invent ar ). is Completed WithValue Matching Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit Ġ== ĠIn vent ar . le er ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. is Done ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ An gen om men ("^ ich Ġh abe Ġmit Ġder ĠIn vent ur Ġbe gon nen $ ") ĊĠĠĠ Ġfun Ġich H abe Mit Der Invent ur Be gon nen () ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġ` w enn Ġich Ġdie ĠIn vent ur Ġbegin ne `() ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ D ann ("^ wer de Ġich Ġfol gen des ĠU ml auf ver m Ã¶ gen Ġin Ġme in em ĠIn vent ar Ġge list et Ġhaben :$ ") ĊĠĠĠ Ġfun Ġ` d ann Ġwer de Ġich Ġfol gende ĠU ml auf ver m Ã¶ gen Ġin Ġme in em ĠIn vent ar Ġge list et Ġhaben `( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġver m Ã¶g ens wer te : ĠList < V erm Ã¶g ens w ert Parameter >) ĊĠĠĠ Ġ{ ĊĊĠĠĠĠĠĠĠ ĠassertThat ( w elt . query . query ( Le se Invent ar ( w elt . akt uelle Invent ur ), ĠIn vent ar :: class . java )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. is Completed WithValue Matching Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . um la uf ver moe gen Ġ== ĠVer mo eg ens wer te ( ver m Ã¶g ens wer te . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠVer mo eg ens w ert ( it . k ategor ie , Ġit . position , Ġit . w Ã¤h run gs be trag ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. is Done ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ D ann ("^ wer de Ġich Ġfol gen des ĠAn lage ver m Ã¶ gen Ġin Ġme in em ĠIn vent ar Ġge list et Ġhaben :$ ") ĊĠĠĠ Ġfun Ġ` d ann Ġwer de Ġich Ġfol gen des ĠAn lage ver m Ã¶ gen Ġin Ġme in em ĠIn vent ar Ġge list et Ġhaben `( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġver m Ã¶g ens wer te : ĠList < V erm Ã¶g ens w ert Parameter >) ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( w elt . query . query ( Le se Invent ar ( w elt . akt uelle Invent ur ), ĠIn vent ar :: class . java )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. is Completed WithValue Matching Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . an lage ver moe gen Ġ== ĠVer mo eg ens wer te ( ver m Ã¶g ens wer te . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠVer mo eg ens w ert ( it . k ategor ie , Ġit . position , Ġit . w Ã¤h run gs be trag ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ D ann ("^ wer de Ġich Ġfol gende ĠSch ul den Ġin Ġme in em ĠIn vent ar Ġge list et Ġhaben :$ ") ĊĠĠĠ Ġfun Ġ` d ann Ġwer de Ġich Ġfol gende ĠSch ul den Ġin Ġme in em ĠIn vent ar Ġge list et ĠH ab en `( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsch ul den : ĠList < Sch uld Parameter >) ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġer w art et : ĠVer mo eg ens wer te Ġ= ĠVer mo eg ens wer te . ke ine ĊĊĠĠĠĠĠĠĠ ĠassertThat ( w elt . query . query ( Le se Invent ar ( w elt . akt uelle Invent ur ), ĠIn vent ar :: class . java )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. is Completed WithValue Matching ({ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġer w art et Ġ= ĠVer mo eg ens wer te ( sch ul den . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠVer mo eg ens w ert ( it . k ategor ie , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . position , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . w Ã¤h run gs be trag ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . sch ul den Ġ== Ġer w art et ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ, Ġ"$ sch ul den Ġer w art et : Ġ$ er w art et ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. is Done ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠSch uld Parameter ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġk ategor ie : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġposition : ĠString , ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ X Stream Converter ( Money Converter :: class ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġw Ã¤h run gs be trag : ĠW Ã¤h run gs be trag ) ĊĊĠĠĠ Ġ@ W enn ("^ ich Ġfol gen des ĠIn vent ar Ġer fas se :$ ") ĊĠĠĠ Ġfun Ġich F ol gen des Invent ar E rf asse ( e ing abe : ĠList < Invent ar E ing abe >) ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġtry ĊĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsync ( w elt . invent ur ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsend ( E rf asse Invent ar ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġw elt . akt uelle Invent ur , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe ing abe . an lage ver m Ã¶ gen , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe ing abe . um la uf ver m Ã¶ gen , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe ing abe . sch ul den )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcatch Ġ( aus nah me : ĠException ) ĊĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġw elt . aus nah me Ġ= Ġaus nah me ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Un d ("^ ich Ġfol gen des ĠIn vent ar Ġer f ass en Ġwill :$ ") ĊĠĠĠ Ġfun Ġich F ol gen des Invent ar E rf ass en Will ( e ing abe : ĠList < Invent ar E ing abe >) ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġw elt . int ention Ġ= Ġw elt . invent ur . send ( E rf asse Invent ar ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġw elt . akt uelle Invent ur , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe ing abe . an lage ver m Ã¶ gen , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe ing abe . um la uf ver m Ã¶ gen , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe ing abe . sch ul den )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ D ann ("^ wer de Ġich Ġfol gen des ĠRe in ver m Ã¶ gen Ġer mit tel t Ġhaben :$ ") ĊĠĠĠ Ġfun Ġ` d ann Ġwer de Ġich Ġfol gen des ĠE ig enk ap ital Ġer mit tel t Ġhaben `( re in ver m Ã¶ gen : ĠDataTable ) ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmap Ġ= Ġrein ver m Ã¶ gen . as Map ( String :: class . java , ĠString :: class . java ) ĊĊĠĠĠĠĠĠĠ Ġval Ġer w art ung sw ert Ġ= ĠRe in ver m Ã¶ gen ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsum me Der Sch ul den Ġ= ĠW Ã¤h run gs be trag . w Ã¤h run gs be trag ( map [" Sum me Ġder ĠSch ul den "] !! ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsum me Des Ver mo eg ens Ġ= ĠW Ã¤h run gs be trag . w Ã¤h run gs be trag ( map [" Sum me Ġdes ĠV erm Ã¶g ens "] !! )) ĊĊĠĠĠĠĠĠĠ Ġval Ġinvent ar Ġ= Ġw elt . query . query ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLe se Invent ar ( w elt . akt uelle Invent ur ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIn vent ar :: class . java ). get () ĊĊĠĠĠĠĠĠĠ ĠassertThat ( invent ar . re in ver moe gen ). isEqualTo ( er w art ung sw ert ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ W enn ("^ ich Ġdie ĠIn vent ur Ġbe enden Ġwill $ ") ĊĠĠĠ Ġfun Ġich Die Invent ur Be enden Will () ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġw elt . int ention Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġw elt . invent ur . send ( Been de Invent ur ( v on Ġ= Ġw elt . akt uelle Invent ur )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ D ann ("^ wer de Ġich Ġdie ĠFehler meld ung Ġ\" ([ ^\ "] *) \" Ġer halten $ ") ĊĠĠĠ Ġfun Ġwer de I ch Die Fe h ler meld ung Er halten ( fe h ler meld ung : ĠString ) ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġassert ( w elt . int ention Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Es Ġwurde Ġke in ĠSch ritt Ġausge fÃ¼hrt , Ġder Ġeine ĠInt ention Ġaus dr Ã¼ck t ." ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġw elt . int ention . let Ġ{ Ġintention Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( int ention ). is Completed Exception ally . with Fail Message ( fe h ler meld ung ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Un d ("^ ich Ġh abe Ġfol gen des ĠIn vent ar Ġer fas st :$ ") ĊĠĠĠ Ġfun Ġich H abe F ol gen des Invent ar E rf as st ( ze ilen : ĠList < Invent ar E ing abe >) ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġich F ol gen des Invent ar E rf asse ( ze ilen ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ W enn ("^ ich Ġdie ĠIn vent ur Ġbeen de $ ") ĊĠĠĠ Ġfun Ġich Die Invent ur Been de () ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġsync ( w elt . invent ur ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsend ( Been de Invent ur ( w elt . akt uelle Invent ur )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ W enn ("^ ich Ġeine ĠIn vent ur Ġam Ġ\" (\\ d { 2 }\\ .\\ d { 2 }\\ .\\ d { 4 } Ġum Ġ\\ d { 2 }: \\ d { 2 }) \" Ġbeen de $ ") ĊĠĠĠ Ġfun Ġ` w enn Ġich Ġeine ĠIn vent ur Ġbeen de ` (@ Transform ( LocalDateTime Converter :: class ) Ġdatum : ĠLocalDateTime ) ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġw elt . akt uelle Invent ur Ġ= ĠAg greg at ken nung . ne u () ĊĠĠĠĠĠĠĠ Ġw elt . zeit . jet zt Ġ= Ġdatum ĊĊĠĠĠĠĠĠĠ Ġsync ( w elt . invent ur ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsend ( Begin ne Invent ur ( w elt . akt uelle Invent ur )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. then Compose Ġ{ Ġid Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsend ( E rf asse Invent ar ( id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIn vent ar . le er . an lage ver moe gen , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIn vent ar . le er . um la uf ver moe gen , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIn vent ar . le er . sch ul den )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. then Compose Ġ{ Ġ_ Ġ-> Ġsend ( Been de Invent ur ( w elt . akt uelle Invent ur )) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ D ann (" wer de Ġich Ġme in ĠIn vent ar Ġam Ġ\" (\\ d { 2 }\\ .\\ d { 2 }\\ .\\ d { 4 } Ġum Ġ\\ d { 2 }: \\ d { 2 }) \" Ġer fas st Ġhaben ") ĊĠĠĠ Ġfun Ġ` wer de Ġich Ġme in ĠIn vent ar Ġer fas st Ġhaben ` (@ Transform ( LocalDateTime Converter :: class ) Ġdatum : ĠLocalDateTime ) ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinvent ar Ġ= Ġw elt . query . query ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLe se Invent ar ( w elt . akt uelle Invent ur ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIn vent ar :: class . java ). get () ĊĊĠĠĠĠĠĠĠ ĠassertThat ( invent ar . er stellt Am ). isEqualTo ( datum ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ D ann Ġ(" ^ wer de Ġich Ġden ĠFehler Ġ\" ([ ^\ "] *) \" Ġer halten $ ") ĊĠĠĠ Ġfun Ġ` wer de Ġich Ġden ĠFehler Ġer halten `( fe h ler meld ung : ĠString ) ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( w elt . aus nah me ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. has Message ( fe h ler meld ung ) ĊĠĠĠ Ġ} Ċ } Ċ