package Ġcom . tg ir ard 1 2 . graphql kot l ind sl Ċ Ċ import ĠStub s Ċ import Ġcom . tg ir ard 1 2 . graphql kot l ind sl . graphql java . async Data Fetcher Ċ import Ġcom . tg ir ard 1 2 . graphql kot l ind sl . graphql java . static Data Fetcher Ċ import Ġcom . tg ir ard 1 2 . graphql kot l ind sl . models . List Types Ċ import Ġcom . tg ir ard 1 2 . graphql kot l ind sl . models . Simple Types Ċ import Ġio . kot lint est . K Test JUnit Runner Ċ import Ġio . kot lint est . specs . Word Spec Ċ import Ġorg . junit . runner . RunWith Ċ import Ġjava . time . LocalDateTime Ċ Ċ @ RunWith ( K Test JUnit Runner :: class ) Ċ class ĠType Dsl Test Ġ: ĠWord Spec () Ġ{ ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġ" Type Dsl Test Ġschema " Ġshould Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" print Ġsimple ĠType " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġschema Dsl Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype < Simple Types > Ġ{ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġschema Equal Ġ""" Ċ schema Ġ{ Ċ } Ċ Ċ type ĠSimple Types Ġ{ ĊĠĠĠ Ġdouble : ĠDouble ! ĊĠĠĠ Ġdouble Null : ĠDouble ĊĠĠĠ Ġfloat : ĠFloat ! ĊĠĠĠ Ġfloat Null : ĠFloat ĊĠĠĠ Ġint : ĠInt ! ĊĠĠĠ Ġint Null : ĠInt ĊĠĠĠ Ġlong : ĠLong ! ĊĠĠĠ Ġlong Null : ĠLong ĊĠĠĠ Ġstring : ĠString ! ĊĠĠĠ Ġstring Null : ĠString ĊĠĠĠ Ġuser : ĠUser ĊĠĠĠ Ġuuid : ĠUUID ! ĊĠĠĠ Ġuuid Null : ĠUUID Ċ } Ċ """ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" print ĠList Ġtypes " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġschema Dsl Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype < List Types > Ġ{ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġschema Equal Ġ""" Ċ schema Ġ{ Ċ } Ċ Ċ type ĠList Types Ġ{ ĊĠĠĠ Ġints : Ġ[ Int ] ! ĊĠĠĠ Ġints Null : Ġ[ Int ] Ċ } Ċ """ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" print ĠDescription " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġschema Dsl Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype < List Types >( type Description Ġ= Ġ" List ĠType ") Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġschema Equal Ġ""" Ċ schema Ġ{ Ċ } Ċ Ċ # ĠList ĠType Ċ type ĠList Types Ġ{ ĊĠĠĠ Ġints : Ġ[ Int ] ! ĊĠĠĠ Ġints Null : Ġ[ Int ] Ċ } Ċ """ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ" Type Dsl Test . Field Ġschema " Ġshould Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" fail Ġif Ġ 2 Ġhas Ġsame Ġname " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshould Throw < IllegalArgumentException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġschema Dsl Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype < List Types > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdesc (" ints ", Ġ" Ints Ġdescr Ġ 1 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdesc (" ints ", Ġ" Ints Ġdescr Ġ 2 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. message Ġshould Equal Ġ" Description Ġ' Ints Ġdescr Ġ 2 ' Ġon Ġtype Ġ' List Types . ints ' Ġdoes Ġnot Ġexist " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" fail Ġif Ġfield Ġname Ġnot Ġexist " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshould Throw < IllegalArgumentException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġschema Dsl Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype < List Types > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdesc (" int NotExist ", Ġ" Ints ĠNot ĠEx ist ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. message Ġshould Equal Ġ" Type Ġ' List Types . int NotExist ' Ġdoes Ġnot Ġexist " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" add Ġdescription Ġon Ġfield " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġschema Dsl Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype < List Types > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdesc (" ints ", Ġ" Ints Ġdescription ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġschema Equal Ġ""" Ċ schema Ġ{ Ċ } Ċ Ċ type ĠList Types Ġ{ ĊĠĠĠ Ġ# ĠIn ts Ġdescription ĊĠĠĠ Ġints : Ġ[ Int ] ! ĊĠĠĠ Ġints Null : Ġ[ Int ] Ċ } Ċ """ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ" Type Dsl Test Ġadd Field Ġschema " Ġshould Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" fail Ġon Ġexist ĠType " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġschema Dsl Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype < List Types > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Field < Int > Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Field < Long > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" count Long " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" Long Ġdescription " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnullable Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Field < String >( name Ġ= Ġ" string Field ", Ġdescription Ġ= Ġ" string Ġde cr ") Ġ{ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġschema Equal Ġ""" Ċ schema Ġ{ Ċ } Ċ Ċ type ĠList Types Ġ{ ĊĠĠĠ Ġints : Ġ[ Int ] ! ĊĠĠĠ Ġints Null : Ġ[ Int ] ĊĊĠĠĠ Ġ# ĠLong Ġdescription ĊĠĠĠ Ġcount Long : ĠLong ĊĠĠĠ Ġint : ĠInt ! ĊĠĠĠ Ġ# Ġstring Ġde cr ĊĠĠĠ Ġstring Field : ĠString ! Ċ } Ċ """ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ" Type Dsl Test Ġdrop Field Ġschema " Ġshould Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" not Ġprint Ġdrop Ġfield " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġschema Dsl Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype < List Types > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdrop Field (" ints Null ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġschema Equal Ġ""" Ċ schema Ġ{ Ċ } Ċ Ċ type ĠList Types Ġ{ ĊĠĠĠ Ġints : Ġ[ Int ] ! Ċ } Ċ """ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" throw Ġif Ġfield Ġname Ġnot Ġexist " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshould Throw < IllegalArgumentException > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġschema Dsl Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype < List Types > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdrop Field (" ints NotExist ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ" Type Dsl Test Ġdata Fetcher " Ġshould Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" test Ġdata fetcher " Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġschema Dsl Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype < Simple Types > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatic Data Fetcher (" user ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠStub s . users [ 0 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġasync Data Fetcher Ġ{ ĠLocalDateTime . now () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. types ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. first Ġ{ Ġit . name Ġ== Ġ" Simple Types " Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. data Fetcher ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . size Ġshould Equal Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( it [" user "] Ġ!= Ġnull ) Ġshould Equal Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( it [" local DateTime "] Ġ!= Ġnull ) Ġshould Equal Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ