package Ġcom . jo e . quiz zy . graphql . models Ċ Ċ import Ġassert k . assertThat Ċ import Ġassert k . assertions . isEqualTo Ċ import Ġassert k . assertions . isNull Ċ import Ġcom . jo e . quiz zy . api . models . Grade Ċ import Ġcom . jo e . quiz zy . api . models . Question Ċ import Ġcom . jo e . quiz zy . api . models . Response Ċ import Ġcom . jo e . quiz zy . api . models . User Ċ import Ġcom . jo e . quiz zy . graphql . auth . User Principal Ċ import Ġcom . trib 3 . graphql . resources . get GraphQL Context Map Ċ import Ġcom . trib 3 . testing . Le aky Mock Ċ import Ġgraphql . GraphQL Context Ċ import Ġgraphql . schema . Data Fetching Environment Ċ import Ġkotlinx . coroutines . Coroutine Scope Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . future . await Ċ import Ġkotlinx . coroutines . run Blocking Ċ import Ġorg . dataloader . DataLoader Ċ import Ġorg . easy mock . Easy Mock Ċ import Ġorg . testng . annotations . Test Ċ import Ġjava . time . Offset DateTime Ċ import Ġjava . util . UUID Ċ import Ġjava . util . concurrent . Comp letableFuture Ċ Ċ class ĠApiResponse Test Ġ{ ĊĠĠĠ Ġval Ġscope Ġ= ĠCor outine Scope ( Dispatch ers . Default ) ĊĠĠĠ Ġval Ġnow Ġ= ĠOffset DateTime . now () ĊĠĠĠ Ġval Ġr Ġ= ĠApiResponse ( ĊĠĠĠĠĠĠĠ ĠUUID . randomUUID (), ĊĠĠĠĠĠĠĠ ĠUUID . randomUUID (), ĊĠĠĠĠĠĠĠ ĠUUID . randomUUID (), ĊĠĠĠĠĠĠĠ Ġ" answer ", ĊĠĠĠĠĠĠĠ Ġ" references " ĊĠĠĠ Ġ) ĊĠĠĠ Ġval Ġu Ġ= ĠUser ( UUID . randomUUID (), ĠUUID . randomUUID (), Ġ" name ", Ġ" email ", Ġ"", Ġfalse , Ġ"") ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Copy Constructor () Ġ{ ĊĠĠĠĠĠĠĠ ĠassertThat ( r ). isEqualTo ( ApiResponse ( Response ( r . id , Ġr . userId , Ġr . question Id , Ġr . response , Ġr . rule References ))) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest User () Ġ= Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= ĠGraphQL Context . of ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget GraphQL Context Map ( scope , ĠUser Principal ( u , Ġnull )) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġmock Env Ġ= ĠLe aky Mock . mock < Data Fetching Environment >() ĊĠĠĠĠĠĠĠ Ġval Ġmock DataLoader Ġ= ĠLe aky Mock . mock < DataLoader < UUID , ĠUser >>() ĊĠĠĠĠĠĠĠ ĠEasy Mock . expect ( mock Env . graph Ql Context ). andReturn ( context ) ĊĠĠĠĠĠĠĠ ĠEasy Mock . expect ( mock Env . getData Loader < UUID , ĠUser >(" batch users ")). andReturn ( mock DataLoader ) ĊĠĠĠĠĠĠĠ ĠEasy Mock . expect ( mock DataLoader . load ( r . userId )). andReturn ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCompletableFuture . completed Future ( u ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠEasy Mock . replay ( mock Env , Ġmock DataLoader ) ĊĠĠĠĠĠĠĠ ĠassertThat ( r . user ( mock Env ). await ()). isEqualTo ( Api User ( u )) ĊĠĠĠĠĠĠĠ ĠEasy Mock . verify ( mock Env , Ġmock DataLoader ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Null User () Ġ= Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= ĠGraphQL Context . of ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget GraphQL Context Map ( scope , ĠUser Principal ( u , Ġnull )) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġmock Env Ġ= ĠLe aky Mock . mock < Data Fetching Environment >() ĊĠĠĠĠĠĠĠ Ġval Ġmock DataLoader Ġ= ĠLe aky Mock . mock < DataLoader < UUID , ĠUser >>() ĊĠĠĠĠĠĠĠ ĠEasy Mock . expect ( mock Env . graph Ql Context ). andReturn ( context ) ĊĠĠĠĠĠĠĠ ĠEasy Mock . expect ( mock Env . getData Loader < UUID , ĠUser >(" batch users ")). andReturn ( mock DataLoader ) ĊĠĠĠĠĠĠĠ ĠEasy Mock . expect ( mock DataLoader . load ( r . userId )). andReturn ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCompletableFuture . completed Future ( null ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠEasy Mock . replay ( mock Env , Ġmock DataLoader ) ĊĠĠĠĠĠĠĠ ĠassertThat ( r . user ( mock Env ). await ()). isNull () ĊĠĠĠĠĠĠĠ ĠEasy Mock . verify ( mock Env , Ġmock DataLoader ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest No Context User () Ġ= Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= ĠGraphQL Context . of ( get GraphQL Context Map ( scope )) ĊĠĠĠĠĠĠĠ Ġval Ġmock Env Ġ= ĠLe aky Mock . mock < Data Fetching Environment >() ĊĠĠĠĠĠĠĠ ĠEasy Mock . expect ( mock Env . graph Ql Context ). andReturn ( context ) ĊĠĠĠĠĠĠĠ ĠEasy Mock . replay ( mock Env ) ĊĠĠĠĠĠĠĠ ĠassertThat ( r . user ( mock Env ). await ()). isNull () ĊĠĠĠĠĠĠĠ ĠEasy Mock . verify ( mock Env ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Question () Ġ= Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= ĠGraphQL Context . of ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget GraphQL Context Map ( scope , ĠUser Principal ( u , Ġnull )) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġmock Env Ġ= ĠLe aky Mock . mock < Data Fetching Environment >() ĊĠĠĠĠĠĠĠ Ġval Ġmock DataLoader Ġ= ĠLe aky Mock . mock < DataLoader < UUID , ĠQuestion >>() ĊĠĠĠĠĠĠĠ ĠEasy Mock . expect ( mock Env . graph Ql Context ). andReturn ( context ) ĊĠĠĠĠĠĠĠ ĠEasy Mock . expect ( mock Env . getData Loader < UUID , ĠQuestion >(" batch questions ")). andReturn ( mock DataLoader ) ĊĠĠĠĠĠĠĠ Ġval Ġq Ġ= ĠQuestion ( r . question Id , ĠUUID . randomUUID (), Ġ" b ", Ġ" a ", Ġ" r ", Ġnow , Ġnow ) ĊĠĠĠĠĠĠĠ ĠEasy Mock . expect ( mock DataLoader . load ( r . question Id )). andReturn ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCompletableFuture . completed Future ( q ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠEasy Mock . replay ( mock Env , Ġmock DataLoader ) ĊĠĠĠĠĠĠĠ ĠassertThat ( r . question ( mock Env ). await ()). isEqualTo ( Api Question ( q )) ĊĠĠĠĠĠĠĠ ĠEasy Mock . verify ( mock Env , Ġmock DataLoader ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Null Question () Ġ= Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= ĠGraphQL Context . of ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget GraphQL Context Map ( scope , ĠUser Principal ( u , Ġnull )) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġmock Env Ġ= ĠLe aky Mock . mock < Data Fetching Environment >() ĊĠĠĠĠĠĠĠ Ġval Ġmock DataLoader Ġ= ĠLe aky Mock . mock < DataLoader < UUID , ĠQuestion >>() ĊĠĠĠĠĠĠĠ ĠEasy Mock . expect ( mock Env . graph Ql Context ). andReturn ( context ) ĊĠĠĠĠĠĠĠ ĠEasy Mock . expect ( mock Env . getData Loader < UUID , ĠQuestion >(" batch questions ")). andReturn ( mock DataLoader ) ĊĠĠĠĠĠĠĠ ĠEasy Mock . expect ( mock DataLoader . load ( r . question Id )). andReturn ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCompletableFuture . completed Future ( null ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠEasy Mock . replay ( mock Env , Ġmock DataLoader ) ĊĠĠĠĠĠĠĠ ĠassertThat ( r . question ( mock Env ). await ()). isNull () ĊĠĠĠĠĠĠĠ ĠEasy Mock . verify ( mock Env , Ġmock DataLoader ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest No Context Question () Ġ= Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= ĠGraphQL Context . of ( get GraphQL Context Map ( scope )) ĊĠĠĠĠĠĠĠ Ġval Ġmock Env Ġ= ĠLe aky Mock . mock < Data Fetching Environment >() ĊĠĠĠĠĠĠĠ ĠEasy Mock . expect ( mock Env . graph Ql Context ). andReturn ( context ) ĊĠĠĠĠĠĠĠ ĠEasy Mock . replay ( mock Env ) ĊĠĠĠĠĠĠĠ ĠassertThat ( r . question ( mock Env ). await ()). isNull () ĊĠĠĠĠĠĠĠ ĠEasy Mock . verify ( mock Env ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Grade () Ġ= Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= ĠGraphQL Context . of ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget GraphQL Context Map ( scope , ĠUser Principal ( u , Ġnull )) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġmock Env Ġ= ĠLe aky Mock . mock < Data Fetching Environment >() ĊĠĠĠĠĠĠĠ Ġval Ġmock DataLoader Ġ= ĠLe aky Mock . mock < DataLoader < UUID , ĠGr ade >>() ĊĠĠĠĠĠĠĠ ĠEasy Mock . expect ( mock Env . graph Ql Context ). andReturn ( context ) ĊĠĠĠĠĠĠĠ ĠEasy Mock . expect ( mock Env . getData Loader < UUID , ĠGr ade >(" response grade s ")). andReturn ( mock DataLoader ) ĊĠĠĠĠĠĠĠ Ġval Ġg Ġ= ĠGr ade ( UUID . randomUUID (), Ġr . id !! , Ġtrue , Ġ 5 ) ĊĠĠĠĠĠĠĠ ĠEasy Mock . expect ( mock DataLoader . load ( r . id )). andReturn ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCompletableFuture . completed Future ( g ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠEasy Mock . replay ( mock Env , Ġmock DataLoader ) ĊĠĠĠĠĠĠĠ ĠassertThat ( r . grade ( mock Env ). await ()). isEqualTo ( g ) ĊĠĠĠĠĠĠĠ ĠEasy Mock . verify ( mock Env , Ġmock DataLoader ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Null Grade () Ġ= Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= ĠGraphQL Context . of ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget GraphQL Context Map ( scope , ĠUser Principal ( u , Ġnull )) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġmock Env Ġ= ĠLe aky Mock . mock < Data Fetching Environment >() ĊĠĠĠĠĠĠĠ Ġval Ġmock DataLoader Ġ= ĠLe aky Mock . mock < DataLoader < UUID , ĠGr ade >>() ĊĠĠĠĠĠĠĠ ĠEasy Mock . expect ( mock Env . graph Ql Context ). andReturn ( context ) ĊĠĠĠĠĠĠĠ ĠEasy Mock . expect ( mock Env . getData Loader < UUID , ĠGr ade >(" response grade s ")). andReturn ( mock DataLoader ) ĊĠĠĠĠĠĠĠ ĠEasy Mock . expect ( mock DataLoader . load ( r . id )). andReturn ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCompletableFuture . completed Future ( null ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠEasy Mock . replay ( mock Env , Ġmock DataLoader ) ĊĠĠĠĠĠĠĠ ĠassertThat ( r . grade ( mock Env ). await ()). isNull () ĊĠĠĠĠĠĠĠ ĠEasy Mock . verify ( mock Env , Ġmock DataLoader ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest No Context Grade () Ġ= Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= ĠGraphQL Context . of ( get GraphQL Context Map ( scope )) ĊĠĠĠĠĠĠĠ Ġval Ġmock Env Ġ= ĠLe aky Mock . mock < Data Fetching Environment >() ĊĠĠĠĠĠĠĠ ĠEasy Mock . expect ( mock Env . graph Ql Context ). andReturn ( context ) ĊĠĠĠĠĠĠĠ ĠEasy Mock . replay ( mock Env ) ĊĠĠĠĠĠĠĠ ĠassertThat ( r . grade ( mock Env ). await ()). isNull () ĊĠĠĠĠĠĠĠ ĠEasy Mock . verify ( mock Env ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest No Id Grade () Ġ= Ġrun Blocking Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= ĠGraphQL Context . of ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget GraphQL Context Map ( scope , ĠUser Principal ( u , Ġnull )) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġmock Env Ġ= ĠLe aky Mock . mock < Data Fetching Environment >() ĊĠĠĠĠĠĠĠ ĠEasy Mock . expect ( mock Env . graph Ql Context ). andReturn ( context ) ĊĠĠĠĠĠĠĠ ĠEasy Mock . replay ( mock Env ) ĊĠĠĠĠĠĠĠ ĠassertThat ( r . copy ( id Ġ= Ġnull ). grade ( mock Env ). await ()). isNull () ĊĠĠĠĠĠĠĠ ĠEasy Mock . verify ( mock Env ) ĊĠĠĠ Ġ} Ċ } Ċ