package Ġnet . cord a . be have . scenarios . steps Ċ Ċ import Ġnet . cord a . be have . database . Database Type Ċ import Ġnet . cord a . be have . node . Distribution Ċ import Ġnet . cord a . be have . node . configuration . to Not ary Type Ċ import Ġnet . cord a . be have . scenarios . Scenario State Ċ import Ġnet . cord a . be have . scenarios . api . Steps Block Ċ Ċ class ĠConfiguration Steps Ġ: ĠSteps Block Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġinitialize ( state : ĠScenario State ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġnode ( name : ĠString ) Ġ= Ġstate . node Builder ( name ) ĊĊĠĠĠĠĠĠĠ ĠGiven < String , ĠString >(" ^ a Ġnode Ġ( \\ w +) Ġof Ġversion Ġ([ ^ Ġ] + )$ ") Ġ{ Ġname , Ġversion Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnode ( name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Distribution ( Distribution . from Version String ( version )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠGiven < String , ĠString , ĠString , ĠString >(" ^ a Ġnode Ġ( \\ w +) Ġin Ġlocation Ġ( \\ w +) Ġand Ġcountry Ġ( \\ w +) Ġof Ġversion Ġ([ ^ Ġ] + )$ ") Ġ{ Ġname , Ġlocation , Ġcountry , Ġversion Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnode ( name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Distribution ( Distribution . from Version String ( version )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Location ( location . replace ("_ ", Ġ" Ġ"), Ġcountry ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠGiven < String , ĠString , ĠString >(" ^ a Ġ( \\ w +) Ġnot ary Ġnode Ġ( \\ w +) Ġof Ġversion Ġ([ ^ Ġ] + )$ ") Ġ{ Ġnot ary Type , Ġname , Ġversion Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnode ( name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Distribution ( Distribution . from Version String ( version )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Not ary Type ( not ary Type . to Not ary Type () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġerror (" Unknown Ġnot ary Ġtype Ġ'$ not ary Type ' ")) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠGiven < String , ĠString , ĠString >(" ^ a Ġ( \\ w +) Ġnot ary Ġ( \\ w +) Ġof Ġversion Ġ([ ^ Ġ] + )$ ") Ġ{ Ġtype , Ġname , Ġversion Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnode ( name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Distribution ( Distribution . from Version String ( version )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Not ary Type ( type . to Not ary Type () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġerror (" Unknown Ġnot ary Ġtype Ġ'$ type ' ")) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠGiven < String , ĠString >(" ^ node Ġ( \\ w +) Ġuses Ġdatabase Ġof Ġtype Ġ(. + )$ ") Ġ{ Ġname , Ġtype Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnode ( name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Database Type ( Database Type . from Name ( type ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġerror (" Unknown Ġdatabase Ġtype Ġ'$ type ' ")) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠGiven < String , ĠString >(" ^ node Ġ( \\ w +) Ġcan Ġissue Ġc urrencies Ġof Ġdenom ination Ġ(. + )$ ") Ġ{ Ġname , Ġc urrencies Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnode ( name ). with Iss uable C urrencies ( currencies ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace (" Ġand Ġ", Ġ", Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. split (", Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . toUpperCase () Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠGiven < String , ĠString , ĠString >(" ^ node Ġ( \\ w +) Ġis Ġlocated Ġin Ġ( \\ w + ), Ġ( \\ w + )$ ") Ġ{ Ġname , Ġlocation , Ġcountry Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnode ( name ). with Location ( location , Ġcountry ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠGiven < String >(" ^ node Ġ( \\ w +) Ġhas Ġthe Ġfin ance Ġapp Ġinstalled $ ") Ġ{ Ġname Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnode ( name ). with Finance App () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠGiven < String , ĠString >(" ^ node Ġ( \\ w +) Ġhas Ġapp Ġinstalled : Ġ(. + )$ ") Ġ{ Ġname , Ġapp Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnode ( name ). with App ( app ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } ĊĊ