package Ġapp . cash . back fil a . client . static Ċ Ċ import Ġapp . cash . back fil a . client . Back fill Config Ċ import Ġapp . cash . back fil a . embedded . Back fil a Ċ import Ġapp . cash . back fil a . embedded . create D ry Run Ċ import Ġapp . cash . back fil a . embedded . create W et Run Ċ import Ġcom . squareup . wire . internal . new Mutable List Ċ import Ġmis k . testing . Mis k Test Ċ import Ġmis k . testing . Mis k Test Module Ċ import Ġok io . ByteString . Companion . encode Utf 8 Ċ import Ġorg . assertj . core . api . Assertions . assertThat Ċ import Ġorg . assertj . core . api . Soft Assertions Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġjavax . inject . Inject Ċ Ċ @ Mis k Test ( start Service Ġ= Ġtrue ) Ċ class ĠStatic Kotlin Val Back fill Test Ġ{ ĊĠ Ġ@ Suppress (" unused ") ĊĠ Ġ@ Mis k Test Module ĊĠ Ġval Ġmodule Ġ= ĠTesting Module () ĊĊĠ Ġ@ Inject Ġlateinit Ġvar Ġback fil a : ĠBack fil a ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` back fill ing Ġsa uc es `() Ġ{ ĊĠĠĠ Ġval Ġrun Ġ= Ġback fil a . create W et Run < Sa uc es Back fill >() ĊĠĠĠ Ġrun . execute () ĊĊĠĠĠ ĠassertThat ( run . back fill . back filled Sa uc es . size ). isEqualTo ( sweet Sa uc es . size Ġ+ Ġs avour y Sa uc es . size ) ĊĠĠĠ ĠassertThat ( run . back fill . back filled Sa uc es ). contains All ( s avour y Sa uc es ) ĊĠĠĠ ĠassertThat ( run . back fill . back filled Sa uc es ). contains All ( sweet Sa uc es ) ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` mark ing Ġsa uc es Ġsweet `() Ġ{ ĊĠĠĠ Ġval Ġrun Ġ= Ġback fil a . create W et Run < Sa uc es Back fill >( ĊĠĠĠĠĠ Ġparameter Data Ġ= Ġmap Of (" mark S weet " Ġto Ġ" true ". encode Utf 8 ()) ĊĠĠĠ Ġ) ĊĠĠĠ Ġrun . execute () ĊĊĠĠĠ ĠassertThat ( run . back fill . back filled Sa uc es . size ). isEqualTo ( sweet Sa uc es . size Ġ+ Ġs avour y Sa uc es . size ) ĊĠĠĠ ĠassertThat ( run . back fill . back filled Sa uc es ). contains All ( s avour y Sa uc es ) ĊĠĠĠ ĠassertThat ( run . back fill . back filled Sa uc es ). contains All ( sweet Sa uc es . map Ġ{ Ġit . mark S weet () Ġ}) ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` dry Ġrun Ġdoesn 't Ġback fill `() Ġ{ ĊĠĠĠ Ġval Ġrun Ġ= Ġback fil a . create D ry Run < Sa uc es Back fill >( ĊĠĠĠĠĠ Ġparameter Data Ġ= Ġmap Of (" mark S weet " Ġto Ġ" true ". encode Utf 8 ()) ĊĠĠĠ Ġ) ĊĠĠĠ Ġrun . execute () ĊĊĠĠĠ ĠassertThat ( run . back fill . back filled Sa uc es . size ). isEqualTo ( 0 ) ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` test Ġsingle Ġbatch `() Ġ{ ĊĠĠĠ Ġval Ġrun Ġ= Ġback fil a . create W et Run < Sa uc es Back fill >() ĊĠĠĠ Ġrun . batch Size Ġ= Ġ 5 ĊĠĠĠ Ġrun . scan Remaining () ĊĠĠĠ Ġrun . run Batch () ĊĠĠĠ ĠassertThat ( run . back fill . back filled Sa uc es . size ). isEqualTo ( 5 ) ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` test Ġrange Start Ġand Ġrange End `() Ġ{ ĊĠĠĠ Ġval Ġrun Ġ= Ġback fil a . create W et Run < Sa uc es Back fill >( range Start Ġ= Ġ" 2 ", Ġrange End Ġ= Ġ" 8 ") ĊĠĠĠ Ġrun . batch Size Ġ= Ġ 3 ĊĠĠĠ Ġrun . execute () ĊĠĠĠ ĠassertThat ( run . back fill . back filled Sa uc es . size ). isEqualTo ( 6 ) ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` test Ġrange Start `() Ġ{ ĊĠĠĠ Ġval Ġrun Ġ= Ġback fil a . create W et Run < Sa uc es Back fill >( range Start Ġ= Ġ" 3 ") ĊĠĠĠ Ġrun . batch Size Ġ= Ġ 3 ĊĠĠĠ Ġrun . execute () ĊĠĠĠ ĠassertThat ( run . back fill . back filled Sa uc es . size ). isEqualTo ( 7 ) ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` test Ġrange End `() Ġ{ ĊĠĠĠ Ġval Ġrun Ġ= Ġback fil a . create W et Run < Sa uc es Back fill >( range End Ġ= Ġ" 8 ") ĊĠĠĠ Ġrun . batch Size Ġ= Ġ 3 ĊĠĠĠ Ġrun . execute () ĊĠĠĠ ĠassertThat ( run . back fill . back filled Sa uc es . size ). isEqualTo ( 8 ) ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġ` validation Ġfailures `() Ġ{ ĊĠĠĠ Ġwith ( Soft Assertions ()) Ġ{ ĊĠĠĠĠĠ Ġthis . assertThat Code Ġ{ ĊĠĠĠĠĠĠĠ Ġback fil a . create W et Run < Sa uc es Back fill >( ĊĠĠĠĠĠĠĠĠĠ Ġparameter Data Ġ= Ġmap Of (" validate " Ġto Ġ" false ". encode Utf 8 ()) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠ Ġ}. has Message Containing (" Validate Ġfailed ") ĊĊĠĠĠĠĠ Ġthis . assertThat Code Ġ{ ĊĠĠĠĠĠĠĠ Ġback fil a . create W et Run < Sa uc es Back fill >( range Start Ġ= Ġ" abc ") ĊĠĠĠĠĠ Ġ}. has Message Containing (" must Ġbe Ġa Ġnumber ") ĊĊĠĠĠĠĠ Ġthis . assertThat Code Ġ{ ĊĠĠĠĠĠĠĠ Ġback fil a . create W et Run < Sa uc es Back fill >( range End Ġ= Ġ" abc ") ĊĠĠĠĠĠ Ġ}. has Message Containing (" must Ġbe Ġa Ġnumber ") ĊĊĠĠĠĠĠ Ġthis . assertThat Code Ġ{ ĊĠĠĠĠĠĠĠ Ġback fil a . create W et Run < Sa uc es Back fill >( range Start Ġ= Ġ"- 1 0 ") ĊĠĠĠĠĠ Ġ}. has Message Containing (" must Ġbe Ġpositive Ġintegers ") ĊĊĠĠĠĠĠ Ġthis . assertThat Code Ġ{ ĊĠĠĠĠĠĠĠ Ġback fil a . create W et Run < Sa uc es Back fill >( range End Ġ= Ġ"- 5 ") ĊĠĠĠĠĠ Ġ}. has Message Containing (" must Ġbe Ġpositive Ġintegers ") ĊĊĠĠĠĠĠ Ġthis . assertThat Code Ġ{ ĊĠĠĠĠĠĠĠ Ġback fil a . create W et Run < Sa uc es Back fill >( range Start Ġ= Ġ" 5 ", Ġrange End Ġ= Ġ" 2 ") ĊĠĠĠĠĠ Ġ}. has Message Containing (" Start Ġmust Ġbe Ġless Ġthan Ġor Ġequal Ġto Ġend ") ĊĊĠĠĠĠĠ Ġthis . assertThat Code Ġ{ ĊĠĠĠĠĠĠĠ Ġback fil a . create W et Run < Sa uc es Back fill >( range Start Ġ= Ġ" 2 0 ", Ġrange End Ġ= Ġ" 3 0 ") ĊĠĠĠĠĠ Ġ}. has Message Containing (" Start Ġis Ġgreater Ġthan Ġthe Ġstatic Ġdatasource Ġsize ") ĊĊĠĠĠĠĠ Ġthis . assert All () ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġclass ĠS auc es Back fill Ġ@ Inject Ġconstructor () Ġ: ĠStatic Datasource Back fill < String , ĠS auc es Back fill . S au ce Attributes >() Ġ{ ĊĠĠĠ Ġval Ġback filled Sa uc es Ġ= Ġnew Mutable List < String >() ĊĊĠĠĠ Ġoverride Ġfun Ġrun One ( item : ĠString , Ġconfig : ĠBack fill Config < S au ce Attributes >) Ġ{ ĊĠĠĠĠĠ Ġval Ġsa uce Ġ= Ġif Ġ( config . parameters . mark S weet Ġ&& Ġitem Ġin Ġsweet Sa uc es ) Ġitem . mark S weet () Ġelse Ġitem ĊĠĠĠĠĠ Ġif Ġ(! config . dry Run ) Ġ{ ĊĠĠĠĠĠĠĠ Ġback filled Sa uc es . add ( sa uce ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġvalidate ( config : ĠBack fill Config < S au ce Attributes >) Ġ{ ĊĠĠĠĠĠ Ġcheck ( config . parameters . validate ) Ġ{ Ġ" Validate Ġfailed " Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġdata Ġclass ĠS au ce Attributes ( ĊĠĠĠĠĠ Ġval Ġmark S weet : ĠBoolean Ġ= Ġfalse , ĊĠĠĠĠĠ Ġval Ġvalidate : ĠBoolean Ġ= Ġtrue ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġoverride Ġval Ġstatic Datasource : ĠList < String > Ġ= Ġ( sweet Sa uc es Ġ+ Ġs avour y Sa uc es ). sh uffled () ĊĠ Ġ} ĊĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġval Ġsweet Sa uc es Ġ= ĠlistOf (" Back - fil - a ", Ġ" Pol yn esian ", Ġ" H oney ĠMust ard ", Ġ" Bar be que ", Ġ" S rir acha ", Ġ" H oney ĠRo ast ed ĠB BQ ") ĊĠĠĠ Ġval Ġs avour y Sa uc es Ġ= ĠlistOf (" G arden ĠHer b ĠR anch ", Ġ" Z est y ĠBu ff alo ", Ġ" So y ĠS au ce ", Ġ" Tz atz iki ") ĊĊĠĠĠ Ġfun ĠString . mark S weet () Ġ= Ġ" S WE ET Ġ$ this ĠS WE ET " ĊĠ Ġ} Ċ } Ċ