package Ġcom . ap ure base . k graphql . request Ċ Ċ import Ġorg . hamcrest . Core Matchers . equalTo Ċ import Ġorg . hamcrest . Matcher Assert . assertThat Ċ import Ġorg . junit . Test Ċ Ċ /** Ċ Ġ* ĠNot Ġlots Ġof Ġtests , Ġas Ġtoken ization Ġis Ġmostly Ġcovered Ġby ĠQuery Ġand ĠMutation Ġtests Ċ Ġ*/ Ċ class ĠRequest Token ization Test Ġ{ ĊĊĠĠĠ Ġprivate Ġfun Ġtest Token ization ( input Ġ: ĠString , Ġexpected Ġ: ĠList < String >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtokens Ġ= Ġtokenize Request ( input ) ĊĠĠĠĠĠĠĠ ĠassertThat ( tokens , ĠequalTo ( expected )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` tokenize Ġmutation Ġwith Ġargs ` (){ ĊĠĠĠĠĠĠĠ Ġtest Token ization ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinput Ġ= Ġ"{ create Hero ( name : Ġ\" B at man \", Ġappears In : Ġ\" The ĠDark ĠK night \") }", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpected Ġ= ĠlistOf ("{ ", Ġ" create Hero ", Ġ" (", Ġ" name ", Ġ" :", Ġ"\" B at man \"", Ġ" appe ars In ", Ġ" :", Ġ"\" The ĠDark ĠK night \"", Ġ" )", Ġ" }") ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` tokenize Ġsimple Ġquery ` (){ ĊĠĠĠĠĠĠĠ Ġtest Token ization ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinput Ġ= Ġ"{ bat man : Ġhero ( name : Ġ\" B at man \ "){ Ġskills Ġ: Ġpowers Ġ}} ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpected Ġ= ĠlistOf ("{ ", Ġ" bat man ", Ġ" :", Ġ" hero ", Ġ" (", Ġ" name ", Ġ" :", Ġ"\" B at man \"", Ġ" )", Ġ"{ ", Ġ" skills ", Ġ" :", Ġ" pow ers ", Ġ" }", Ġ" }") ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` tokenize Ġquery Ġwith Ġnested Ġselection Ġset ` (){ ĊĠĠĠĠĠĠĠ Ġtest Token ization ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinput Ġ= Ġ"{ hero { name Ġappears In { title { abbr Ġfull } Ġyear }}\ nv ill ain { name Ġde eds }} ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpected Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"{ ", Ġ" hero ", Ġ"{ ", Ġ" name ", Ġ" appe ars In ", Ġ"{ ", Ġ" title ", Ġ"{ ", Ġ" abbr ", Ġ" full ", Ġ" }", Ġ" year ", Ġ" }", Ġ" }", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" v ill ain ", Ġ"{ ", Ġ" name ", Ġ" deed s ", Ġ" }", Ġ" }" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Token ize Ġlist Ġargument ` (){ ĊĠĠĠĠĠĠĠ Ġtest Token ization ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinput Ġ= Ġ"{ List ( value Ġ: Ġ[ 2 3 , Ġ 3 , Ġ 2 3 ]) }", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpected Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"{ ", Ġ" List "," (", Ġ" value ", Ġ" :", Ġ"[", Ġ" 2 3 ", Ġ" 3 ", Ġ" 2 3 ", Ġ" ]", Ġ") "," }" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` Token ize Ġrequired Ġlist Ġargument `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġd Ġ= Ġ"$ " ĊĠĠĠĠĠĠĠ Ġtest Token ization ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinput Ġ= Ġ" mutation Ġcreate (${ d } ages Name 1 : ĠString !, Ġ${ d } ages : Ġ[ String !] ! ){ Ġcreate Actor With A ges ( name : Ġ${ d } ages Name 1 , Ġa ges : Ġ${ d } ages 1 ) Ġ{ Ġname , Ġage Ġ} Ġ} ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpected Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" mutation ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" create ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" (", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ d } ages Name 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" :", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" String !", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ d } ages ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" :", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"[", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" String !", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"] !", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" )", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"{ ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" create Actor With A ges ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" (", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" name ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" :", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ d } ages Name 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ages ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" :", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ d } ages 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" )", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"{ ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" name ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" age ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" }", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" }" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` tokenize Ġinput Ġwith Ġquotes ` (){ ĊĠĠĠĠĠĠĠ Ġtest Token ization ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinput Ġ= Ġ"{ hello ( name Ġ: Ġ\" T ed \\\" ĠM os by \") }", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpected Ġ= ĠlistOf ("{ ", Ġ" hello ", Ġ" (", Ġ" name ", Ġ" :", Ġ"\" T ed \\\" ĠM os by \"", Ġ" )", Ġ" }") ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` tokenize Ġinput Ġwith Ġnew Ġlines `() Ġ{ ĊĠĠĠĠĠĠĠ Ġtest Token ization ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinput Ġ= Ġ"{ lists {\ r \ nt otal Count \ r \ n nodes {\ r \ nt itle \ r \ n Ġ}\ r \ n }\ r \ n }", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpected Ġ= ĠlistOf ("{ ", Ġ" lists ", Ġ"{ ", Ġ" total Count ", Ġ" nodes ", Ġ"{ ", Ġ" title ", Ġ" }", Ġ" }", Ġ" }") ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ