package Ġcom . github . yu iz ho . d br ac co on Ċ Ċ import Ġcom . github . yu iz ho . d br ac co on . annotation . Csv DataSet Ċ import Ġcom . github . yu iz ho . d br ac co on . annotation . Csv Table Ċ import Ġcom . github . yu iz ho . d br ac co on . annotation . DataSet Ċ import Ġcom . github . yu iz ho . d br ac co on . annotation . Table Ċ import Ġcom . github . yu iz ho . d br ac co on . operation . Column Metadata Scan Operator Ċ import Ġcom . github . yu iz ho . d br ac co on . operation . Plain Query Operator Ċ import Ġcom . github . yu iz ho . d br ac co on . operation . Query Operator Ċ import Ġcom . github . yu iz ho . d br ac co on . processor . create Column Metadata Operator Ċ import Ġcom . github . yu iz ho . d br ac co on . processor . create Delete Query Operator Ċ import Ġcom . github . yu iz ho . d br ac co on . processor . create Insert Query Operator Ċ import Ġio . mock k .* Ċ import Ġorg . assertj . core . api . Assertions . assertThat Ċ import Ġorg . junit . jupiter . api .* Ċ import Ġorg . junit . jupiter . api . extension . Extension Context Ċ import Ġorg . junit . jupiter . params . Parameterized Test Ċ import Ġorg . junit . jupiter . params . provider . Csv Source Ċ import Ġorg . mockito . Mockito .` when ` Ċ import Ġorg . mockito . Mockito . mock Ċ import Ġjava . sql . Connection Ċ import Ġjavax . sql . DataSource Ċ Ċ class ĠDb R ac co on Extension Test Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġ@ Before All ĊĠĠĠĠĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmock k Static (" com . github . yu iz ho . d br ac co on . processor . DataSet Processor Kt ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmock k Static (" com . github . yu iz ho . d br ac co on . processor . Csv DataSet Processor Kt ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġ@ After All ĊĠĠĠĠĠĠĠ Ġfun ĠtearDown () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġun mock k Static (" com . github . yu iz ho . d br ac co on . processor . DataSet Processor Kt ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġun mock k Static (" com . github . yu iz ho . d br ac co on . processor . Csv DataSet Processor Kt ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠdataSource Mocks (): ĠPair < DataSource , ĠConnection > Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠdataSource Mock Ġ= Ġmock k < DataSource >() ĊĠĠĠĠĠĠĠ Ġval Ġconn Mock Ġ= Ġmock k < Connection >( relax Unit Fun Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠ Ġevery Ġ{ ĠdataSource Mock . connection Ġ} Ġreturns Ġconn Mock ĊĠĠĠĠĠĠĠ Ġreturn ĠPair ( dataSource Mock , Ġconn Mock ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠdataSet Mocks (): ĠTrip le < DataSet , ĠColumn Metadata Scan Operator , ĠQuery Operator > Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠdataSet Mock Ġ= Ġmock k < DataSet >() ĊĠĠĠĠĠĠĠ Ġval Ġmetadata Operator Mock Ġ= Ġmock k < Column Metadata Scan Operator >() ĊĠĠĠĠĠĠĠ Ġval Ġquery Operator Mock Ġ= Ġmock k < Query Operator >( relax Unit Fun Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠ Ġevery Ġ{ ĠdataSet Mock . create Column Metadata Operator () Ġ} Ġreturns Ġmetadata Operator Mock ĊĠĠĠĠĠĠĠ Ġevery Ġ{ ĠdataSet Mock . create Delete Query Operator ( any (), Ġany ()) Ġ} Ġreturns Ġquery Operator Mock ĊĠĠĠĠĠĠĠ Ġevery Ġ{ ĠdataSet Mock . create Insert Query Operator ( any ()) Ġ} Ġreturns Ġquery Operator Mock ĊĠĠĠĠĠĠĠ Ġreturn ĠTrip le ( data Set Mock , Ġmetadata Operator Mock , Ġquery Operator Mock ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcsv DataSet Mocks (): ĠTrip le < Csv DataSet , ĠColumn Metadata Scan Operator , ĠQuery Operator > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcsv DataSet Mock Ġ= Ġmock k < Csv DataSet >() ĊĠĠĠĠĠĠĠ Ġval Ġmetadata Operator Mock Ġ= Ġmock k < Column Metadata Scan Operator >() ĊĠĠĠĠĠĠĠ Ġval Ġquery Operator Mock Ġ= Ġmock k < Query Operator >( relax Unit Fun Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġcsv DataSet Mock . create Column Metadata Operator () Ġ} Ġreturns Ġmetadata Operator Mock ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġcsv DataSet Mock . create Delete Query Operator ( any (), Ġany ()) Ġ} Ġreturns Ġquery Operator Mock ĊĠĠĠĠĠĠĠ Ġevery Ġ{ Ġcsv DataSet Mock . create Insert Query Operator ( any ()) Ġ} Ġreturns Ġquery Operator Mock ĊĠĠĠĠĠĠĠ Ġreturn ĠTrip le ( csv DataSet Mock , Ġmetadata Operator Mock , Ġquery Operator Mock ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Nested ĊĠĠĠ Ġ@ DisplayName (" The Ġtest Ġcases Ġthat Ġ@ DataSet Ġis Ġonly Ġapplied ") ĊĠĠĠ Ġinner Ġclass ĠOnly DataSet Applied Cases Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ@ Parameterized Test ( name Ġ= Ġ" when Ġ{ 0 } Ġis Ġpassed ") ĊĠĠĠĠĠĠĠ Ġ@ Csv Source ( value Ġ= Ġ[" BEFORE _ AND _ AFTER _ TEST , ĠUSE D _ ROWS ", Ġ" BEFORE _ TEST , ĠUSE D _ TABLE S "]) ĊĠĠĠĠĠĠĠ Ġfun Ġ` before Test Execution Ġdelete - insert Ġworks `( cleanup Phase : ĠCleanup Phase , Ġcleanup Strategy : ĠCleanup Strategy ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġmocks ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( dataSource Mock , Ġconn Mock ) Ġ= ĠdataSource Mocks () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontext Mock Ġ= Ġmock k < Extension Context >( relax Unit Fun Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstore Mock Ġ= Ġmock k < Extension Context . Store >( relax Unit Fun Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( data Set Mock , Ġmetadata Operator Mock , Ġquery Operator Mock ) Ġ= ĠdataSet Mocks () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexpected Column By Table Ġ= Ġmap Of (" table " Ġto Ġmap Of (" 1 " Ġto ĠCol Type . INTEGER )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġmetadata Operator Mock . execute ( conn Mock ) Ġ} Ġreturns Ġexpected Column By Table ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġgiven ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdb R ac co on Extension Ġ= Ġspy k ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDb R ac co on Extension ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠdataSource Mock , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcleanup Phase , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcleanup Strategy ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġdb R ac co on Extension . getData Set ( context Mock ) Ġ} Ġreturns ĠdataSet Mock ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġdb R ac co on Extension . getC sv DataSet ( context Mock ) Ġ} Ġreturns Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġdb R ac co on Extension . get Store ( context Mock ) Ġ} Ġreturns Ġstore Mock ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġwhen ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdb R ac co on Extension . before Test Execution ( context Mock ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ ĠdataSet Mock . create Delete Query Operator ( expected Column By Table , Ġcleanup Strategy ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ ĠdataSet Mock . create Insert Query Operator ( expected Column By Table ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 2 ) Ġ{ Ġquery Operator Mock . execute Queries ( conn Mock ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġstore Mock . put (" column Metadata By Table ", Ġexpected Column By Table ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Parameterized Test ( name Ġ= Ġ" when Ġ{ 0 } Ġis Ġpassed ") ĊĠĠĠĠĠĠĠ Ġ@ Csv Source ( value Ġ= Ġ[" AFTER _ TEST "]) ĊĠĠĠĠĠĠĠ Ġfun Ġ` before Test Execution Ġinsert ( no Ġdelete ) Ġworks `( cleanup Phase : ĠCleanup Phase ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġmocks ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( dataSource Mock , Ġconn Mock ) Ġ= ĠdataSource Mocks () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontext Mock Ġ= Ġmock k < Extension Context >( relax Unit Fun Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstore Mock Ġ= Ġmock k < Extension Context . Store >( relax Unit Fun Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( data Set Mock , Ġmetadata Operator Mock , Ġquery Operator Mock ) Ġ= ĠdataSet Mocks () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexpected Column By Table Ġ= Ġmap Of (" table " Ġto Ġmap Of (" 1 " Ġto ĠCol Type . INTEGER )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġmetadata Operator Mock . execute ( conn Mock ) Ġ} Ġreturns Ġexpected Column By Table ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġgiven ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdb R ac co on Extension Ġ= Ġspy k ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDb R ac co on Extension ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠdataSource Mock , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcleanup Phase ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġdb R ac co on Extension . getData Set ( context Mock ) Ġ} Ġreturns ĠdataSet Mock ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġdb R ac co on Extension . getC sv DataSet ( context Mock ) Ġ} Ġreturns Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġdb R ac co on Extension . get Store ( context Mock ) Ġ} Ġreturns Ġstore Mock ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġwhen ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdb R ac co on Extension . before Test Execution ( context Mock ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 0 ) Ġ{ ĠdataSet Mock . create Delete Query Operator ( any (), Ġany ()) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ ĠdataSet Mock . create Insert Query Operator ( expected Column By Table ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġquery Operator Mock . execute Queries ( conn Mock ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġstore Mock . put (" column Metadata By Table ", Ġexpected Column By Table ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Parameterized Test ( name Ġ= Ġ" when Ġ{ 0 } Ġis Ġpassed ") ĊĠĠĠĠĠĠĠ Ġ@ Csv Source ( value Ġ= Ġ[" BEFORE _ AND _ AFTER _ TEST , ĠUSE D _ ROWS ", Ġ" AFTER _ TEST , ĠUSE D _ TABLE S "]) ĊĠĠĠĠĠĠĠ Ġfun Ġ` after Test Execution Ġdelete Ġworks `( cleanup Phase : ĠCleanup Phase , Ġcleanup Strategy : ĠCleanup Strategy ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġmocks ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( dataSource Mock , Ġconn Mock ) Ġ= ĠdataSource Mocks () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontext Mock Ġ= Ġmock k < Extension Context >( relax Unit Fun Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( data Set Mock , Ġmetadata Operator Mock , Ġquery Operator Mock ) Ġ= ĠdataSet Mocks () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstore Mock Ġ= Ġmock k < Extension Context . Store >( relax Unit Fun Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexpected Column By Table Ġ= Ġmap Of (" table " Ġto Ġmap Of (" 1 " Ġto ĠCol Type . INTEGER )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġstore Mock . remove ( any ()) Ġ} Ġreturns Ġexpected Column By Table ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġgiven ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdb R ac co on Extension Ġ= Ġspy k ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDb R ac co on Extension ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠdataSource Mock , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcleanup Phase , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcleanup Strategy ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġdb R ac co on Extension . get Store ( context Mock ) Ġ} Ġreturns Ġstore Mock ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġdb R ac co on Extension . getData Set ( context Mock ) Ġ} Ġreturns ĠdataSet Mock ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġdb R ac co on Extension . getC sv DataSet ( context Mock ) Ġ} Ġreturns Ġnull ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġwhen ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdb R ac co on Extension . after Test Execution ( context Mock ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ ĠdataSet Mock . create Delete Query Operator ( expected Column By Table , Ġcleanup Strategy ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġquery Operator Mock . execute Queries ( conn Mock ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġstore Mock . remove (" column Metadata By Table ") Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ DataSet ([ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTable ( name Ġ= Ġ" on Class ", Ġrows Ġ= Ġ[]) ĊĠĠĠĠĠĠĠ Ġ]) ĊĠĠĠĠĠĠĠ Ġprivate Ġinner Ġclass ĠApp lied On Class Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġmethod No DataSet () Ġ{} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ DataSet ([ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTable ( name Ġ= Ġ" on Method ", Ġrows Ġ= Ġ[]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġmethod Has DataSet () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` getData Set Ġreturns Ġ@ DataSet Ġon Ġa ĠClass Ġwhen Ġ@ DataSet Ġannotation Ġis Ġjust Ġapplied Ġon ĠClass `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġmock Ġ( use Ġmock ito . Ġbecause Ġwhen Ġmock k Ġmakes Ġa Ġmethod Ġclass Ġmock , ĠStack Overflow Ġerror Ġis Ġoccurred .) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontext Mock Ġ= Ġmock ( Extension Context :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ` when `( context Mock . required TestMethod ). thenReturn ( Applied On Class :: class . java . getMethod (" method No DataSet ")) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġwhen ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġactual Ġ= ĠDb R ac co on Extension ( mock ( DataSource :: class . java )). getData Set ( context Mock ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( actual ). isEqualTo ( Applied On Class :: class . java . getAnnotation ( DataSet :: class . java )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( actual !!. testData ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. extract ing (" name ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. contains Exactly (" on Class ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` getData Set Ġreturns Ġ@ DataSet Ġon Ġa ĠMethod Ġwhen Ġ@ DataSet Ġannotation Ġis Ġapplied Ġon ĠMethod `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġmock Ġ( use Ġmock ito . Ġbecause Ġwhen Ġmock k Ġmakes Ġa Ġmethod Ġclass Ġmock , ĠStack Overflow Ġerror Ġis Ġoccurred .) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontext Mock Ġ= Ġmock ( Extension Context :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ` when `( context Mock . required TestMethod ). thenReturn ( Applied On Class :: class . java . getMethod (" method Has DataSet ")) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġwhen ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġactual Ġ= ĠDb R ac co on Extension ( mock ( DataSource :: class . java )). getData Set ( context Mock ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( actual ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo ( Applied On Class :: class . java . getMethod (" method Has DataSet "). getAnnotation ( DataSet :: class . java )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( actual !!. testData ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. extract ing (" name ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. contains Exactly (" on Method ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġinner Ġclass ĠClass No DataSet Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġmethod No DataSet () Ġ{} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` getData Set Ġreturns Ġnull Ġwhen Ġ@ DataSet Ġannotation Ġis Ġnot Ġapplied Ġon ĠClass Ġand ĠMethod `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġmock Ġ( use Ġmock ito . Ġbecause Ġwhen Ġmock k Ġmakes Ġa Ġmethod Ġclass Ġmock , ĠStack Overflow Ġerror Ġis Ġoccurred .) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontext Mock Ġ= Ġmock ( Extension Context :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ` when `( context Mock . required TestMethod ). thenReturn ( Class No DataSet :: class . java . getMethod (" method No DataSet ")) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġwhen ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġactual Ġ= ĠDb R ac co on Extension ( mock ( DataSource :: class . java )). getData Set ( context Mock ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( actual ). isNull () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Nested ĊĠĠĠ Ġ@ DisplayName (" The Ġtest Ġcases Ġthat Ġ@ Csv DataSet Ġis Ġonly Ġapplied ") ĊĠĠĠ Ġinner Ġclass ĠOnly Csv DataSet Applied Cases Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ@ Parameterized Test ( name Ġ= Ġ" when Ġ{ 0 } Ġis Ġpassed ") ĊĠĠĠĠĠĠĠ Ġ@ Csv Source ( value Ġ= Ġ[" BEFORE _ AND _ AFTER _ TEST , ĠUSE D _ ROWS ", Ġ" BEFORE _ TEST , ĠUSE D _ TABLE S "]) ĊĠĠĠĠĠĠĠ Ġfun Ġ` before Test Execution Ġdelete - insert Ġworks `( cleanup Phase : ĠCleanup Phase , Ġcleanup Strategy : ĠCleanup Strategy ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġmocks ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( dataSource Mock , Ġconn Mock ) Ġ= ĠdataSource Mocks () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontext Mock Ġ= Ġmock k < Extension Context >( relax Unit Fun Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstore Mock Ġ= Ġmock k < Extension Context . Store >( relax Unit Fun Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( csv DataSet Mock , Ġmetadata Operator Mock , Ġquery Operator Mock ) Ġ= Ġcsv DataSet Mocks () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexpected Column By Table Ġ= Ġmap Of (" table " Ġto Ġmap Of (" 1 " Ġto ĠCol Type . INTEGER )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġmetadata Operator Mock . execute ( conn Mock ) Ġ} Ġreturns Ġexpected Column By Table ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġgiven ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdb R ac co on Extension Ġ= Ġspy k ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDb R ac co on Extension ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠdataSource Mock , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcleanup Phase , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcleanup Strategy ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġdb R ac co on Extension . getData Set ( context Mock ) Ġ} Ġreturns Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġdb R ac co on Extension . getC sv DataSet ( context Mock ) Ġ} Ġreturns Ġcsv DataSet Mock ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġdb R ac co on Extension . get Store ( context Mock ) Ġ} Ġreturns Ġstore Mock ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġwhen ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdb R ac co on Extension . before Test Execution ( context Mock ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġcsv DataSet Mock . create Delete Query Operator ( expected Column By Table , Ġcleanup Strategy ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġcsv DataSet Mock . create Insert Query Operator ( expected Column By Table ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 2 ) Ġ{ Ġquery Operator Mock . execute Queries ( conn Mock ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġstore Mock . put (" column Metadata By Table ", Ġexpected Column By Table ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Parameterized Test ( name Ġ= Ġ" when Ġ{ 0 } Ġis Ġpassed ") ĊĠĠĠĠĠĠĠ Ġ@ Csv Source ( value Ġ= Ġ[" AFTER _ TEST "]) ĊĠĠĠĠĠĠĠ Ġfun Ġ` before Test Execution Ġinsert ( no Ġdelete ) Ġworks `( cleanup Phase : ĠCleanup Phase ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġmocks ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( dataSource Mock , Ġconn Mock ) Ġ= ĠdataSource Mocks () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontext Mock Ġ= Ġmock k < Extension Context >( relax Unit Fun Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstore Mock Ġ= Ġmock k < Extension Context . Store >( relax Unit Fun Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( csv DataSet Mock , Ġmetadata Operator Mock , Ġquery Operator Mock ) Ġ= Ġcsv DataSet Mocks () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexpected Column By Table Ġ= Ġmap Of (" table " Ġto Ġmap Of (" 1 " Ġto ĠCol Type . INTEGER )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġmetadata Operator Mock . execute ( conn Mock ) Ġ} Ġreturns Ġexpected Column By Table ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġgiven ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdb R ac co on Extension Ġ= Ġspy k ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDb R ac co on Extension ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠdataSource Mock , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcleanup Phase ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġdb R ac co on Extension . getData Set ( context Mock ) Ġ} Ġreturns Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġdb R ac co on Extension . getC sv DataSet ( context Mock ) Ġ} Ġreturns Ġcsv DataSet Mock ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġdb R ac co on Extension . get Store ( context Mock ) Ġ} Ġreturns Ġstore Mock ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġwhen ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdb R ac co on Extension . before Test Execution ( context Mock ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 0 ) Ġ{ Ġcsv DataSet Mock . create Delete Query Operator ( any (), Ġany ()) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġcsv DataSet Mock . create Insert Query Operator ( expected Column By Table ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġquery Operator Mock . execute Queries ( conn Mock ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġstore Mock . put (" column Metadata By Table ", Ġexpected Column By Table ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Parameterized Test ( name Ġ= Ġ" when Ġ{ 0 } Ġis Ġpassed ") ĊĠĠĠĠĠĠĠ Ġ@ Csv Source ( value Ġ= Ġ[" BEFORE _ AND _ AFTER _ TEST , ĠUSE D _ ROWS ", Ġ" AFTER _ TEST , ĠUSE D _ TABLE S "]) ĊĠĠĠĠĠĠĠ Ġfun Ġ` after Test Execution Ġdelete Ġworks `( cleanup Phase : ĠCleanup Phase , Ġcleanup Strategy : ĠCleanup Strategy ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġmocks ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( dataSource Mock , Ġconn Mock ) Ġ= ĠdataSource Mocks () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontext Mock Ġ= Ġmock k < Extension Context >( relax Unit Fun Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( csv DataSet Mock , Ġmetadata Operator Mock , Ġquery Operator Mock ) Ġ= Ġcsv DataSet Mocks () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstore Mock Ġ= Ġmock k < Extension Context . Store >( relax Unit Fun Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexpected Column By Table Ġ= Ġmap Of (" table " Ġto Ġmap Of (" 1 " Ġto ĠCol Type . INTEGER )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġstore Mock . remove ( any ()) Ġ} Ġreturns Ġexpected Column By Table ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġgiven ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdb R ac co on Extension Ġ= Ġspy k ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDb R ac co on Extension ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠdataSource Mock , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcleanup Phase , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcleanup Strategy ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġdb R ac co on Extension . get Store ( context Mock ) Ġ} Ġreturns Ġstore Mock ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġdb R ac co on Extension . getData Set ( context Mock ) Ġ} Ġreturns Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġdb R ac co on Extension . getC sv DataSet ( context Mock ) Ġ} Ġreturns Ġcsv DataSet Mock ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġwhen ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdb R ac co on Extension . after Test Execution ( context Mock ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġcsv DataSet Mock . create Delete Query Operator ( expected Column By Table , Ġcleanup Strategy ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġquery Operator Mock . execute Queries ( conn Mock ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġstore Mock . remove (" column Metadata By Table ") Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Csv DataSet ([ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCsv Table ( name Ġ= Ġ" on Class ", Ġrows Ġ= Ġ[], Ġid Ġ= Ġ[]) ĊĠĠĠĠĠĠĠ Ġ]) ĊĠĠĠĠĠĠĠ Ġprivate Ġinner Ġclass ĠApp lied On Class Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġmethod No DataSet () Ġ{} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Csv DataSet ([ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCsv Table ( name Ġ= Ġ" on Method ", Ġrows Ġ= Ġ[], Ġid Ġ= Ġ[]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġmethod Has DataSet () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` getData Set Ġreturns Ġ@ Csv DataSet Ġon Ġa ĠClass Ġwhen Ġ@ DataSet Ġannotation Ġis Ġjust Ġapplied Ġon ĠClass `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġmock Ġ( use Ġmock ito . Ġbecause Ġwhen Ġmock k Ġmakes Ġa Ġmethod Ġclass Ġmock , ĠStack Overflow Ġerror Ġis Ġoccurred .) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontext Mock Ġ= Ġmock ( Extension Context :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ` when `( context Mock . required TestMethod ). thenReturn ( Applied On Class :: class . java . getMethod (" method No DataSet ")) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġwhen ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġactual Ġ= ĠDb R ac co on Extension ( mock ( DataSource :: class . java )). getC sv DataSet ( context Mock ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( actual ). isEqualTo ( Applied On Class :: class . java . getAnnotation ( Csv DataSet :: class . java )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( actual !!. testData ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. extract ing (" name ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. contains Exactly (" on Class ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` getData Set Ġreturns Ġ@ Csv DataSet Ġon Ġa ĠMethod Ġwhen Ġ@ DataSet Ġannotation Ġis Ġapplied Ġon ĠMethod `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġmock Ġ( use Ġmock ito . Ġbecause Ġwhen Ġmock k Ġmakes Ġa Ġmethod Ġclass Ġmock , ĠStack Overflow Ġerror Ġis Ġoccurred .) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontext Mock Ġ= Ġmock ( Extension Context :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ` when `( context Mock . required TestMethod ). thenReturn ( Applied On Class :: class . java . getMethod (" method Has DataSet ")) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġwhen ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġactual Ġ= ĠDb R ac co on Extension ( mock ( DataSource :: class . java )). getC sv DataSet ( context Mock ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( actual ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. isEqualTo ( Applied On Class :: class . java . getMethod (" method Has DataSet "). getAnnotation ( Csv DataSet :: class . java )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( actual !!. testData ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. extract ing (" name ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. contains Exactly (" on Method ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġinner Ġclass ĠClass No DataSet Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġmethod No DataSet () Ġ{} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` getData Set Ġreturns Ġnull Ġwhen Ġ@ Csv DataSet Ġannotation Ġis Ġnot Ġapplied Ġon ĠClass Ġand ĠMethod `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġmock Ġ( use Ġmock ito . Ġbecause Ġwhen Ġmock k Ġmakes Ġa Ġmethod Ġclass Ġmock , ĠStack Overflow Ġerror Ġis Ġoccurred .) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontext Mock Ġ= Ġmock ( Extension Context :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ` when `( context Mock . required TestMethod ). thenReturn ( Class No DataSet :: class . java . getMethod (" method No DataSet ")) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġwhen ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġactual Ġ= ĠDb R ac co on Extension ( mock ( DataSource :: class . java )). getC sv DataSet ( context Mock ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( actual ). isNull () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Nested ĊĠĠĠ Ġ@ DisplayName (" The Ġtest Ġcases Ġthat ĠAll Ġdata Ġset Ġannotations Ġare Ġapplied ") ĊĠĠĠ Ġinner Ġclass ĠAll DataSet Applied Cases Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ@ Parameterized Test ( name Ġ= Ġ" when Ġ{ 0 } Ġis Ġpassed ") ĊĠĠĠĠĠĠĠ Ġ@ Csv Source ( value Ġ= Ġ[" BEFORE _ AND _ AFTER _ TEST , ĠUSE D _ ROWS ", Ġ" BEFORE _ TEST , ĠUSE D _ TABLE S "]) ĊĠĠĠĠĠĠĠ Ġfun Ġ` before Test Execution Ġdelete - insert Ġworks `( cleanup Phase : ĠCleanup Phase , Ġcleanup Strategy : ĠCleanup Strategy ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġmocks ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( dataSource Mock , Ġconn Mock ) Ġ= ĠdataSource Mocks () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontext Mock Ġ= Ġmock k < Extension Context >( relax Unit Fun Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstore Mock Ġ= Ġmock k < Extension Context . Store >( relax Unit Fun Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( data Set Mock , Ġmetadata Operator Mock , Ġquery Operator Mock ) Ġ= ĠdataSet Mocks () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( csv DataSet Mock , Ġcsv Metadata Operator Mock , Ġcsv Query Operator Mock ) Ġ= Ġcsv DataSet Mocks () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexpected Column By Table For DataSet Ġ= Ġmap Of (" table " Ġto Ġmap Of (" 1 " Ġto ĠCol Type . INTEGER )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġmetadata Operator Mock . execute ( conn Mock ) Ġ} Ġreturns Ġexpected Column By Table For DataSet ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexpected Column By Table For Csv DataSet Ġ= Ġmap Of (" table " Ġto Ġmap Of (" 1 " Ġto ĠCol Type . INTEGER ), Ġ" table 2 " Ġto Ġmap Of (" 1 " Ġto ĠCol Type . INTEGER )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġcsv Metadata Operator Mock . execute ( conn Mock ) Ġ} Ġreturns Ġexpected Column By Table For Csv DataSet ĊĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġgiven ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdb R ac co on Extension Ġ= Ġspy k ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDb R ac co on Extension ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠdataSource Mock , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcleanup Phase , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcleanup Strategy ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġdb R ac co on Extension . getData Set ( context Mock ) Ġ} Ġreturns ĠdataSet Mock ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġdb R ac co on Extension . getC sv DataSet ( context Mock ) Ġ} Ġreturns Ġcsv DataSet Mock ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġdb R ac co on Extension . get Store ( context Mock ) Ġ} Ġreturns Ġstore Mock ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġwhen ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdb R ac co on Extension . before Test Execution ( context Mock ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ ĠdataSet Mock . create Delete Query Operator ( expected Column By Table For DataSet , Ġcleanup Strategy ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ ĠdataSet Mock . create Insert Query Operator ( expected Column By Table For DataSet ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 2 ) Ġ{ Ġquery Operator Mock . execute Queries ( conn Mock ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġcsv DataSet Mock . create Delete Query Operator ( expected Column By Table For Csv DataSet , Ġcleanup Strategy ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġcsv DataSet Mock . create Insert Query Operator ( expected Column By Table For Csv DataSet ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 2 ) Ġ{ Ġcsv Query Operator Mock . execute Queries ( conn Mock ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstore Mock . put ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" column Metadata By Table ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġmerged Ġmap Ġis Ġpassed ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of (" table " Ġto Ġmap Of (" 1 " Ġto ĠCol Type . INTEGER ), Ġ" table 2 " Ġto Ġmap Of (" 1 " Ġto ĠCol Type . INTEGER )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Parameterized Test ( name Ġ= Ġ" when Ġ{ 0 } Ġis Ġpassed ") ĊĠĠĠĠĠĠĠ Ġ@ Csv Source ( value Ġ= Ġ[" BEFORE _ AND _ AFTER _ TEST , ĠUSE D _ ROWS ", Ġ" AFTER _ TEST , ĠUSE D _ TABLE S "]) ĊĠĠĠĠĠĠĠ Ġfun Ġ` after Test Execution Ġdelete Ġworks `( cleanup Phase : ĠCleanup Phase , Ġcleanup Strategy : ĠCleanup Strategy ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġmocks ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( dataSource Mock , Ġconn Mock ) Ġ= ĠdataSource Mocks () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontext Mock Ġ= Ġmock k < Extension Context >( relax Unit Fun Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( data Set Mock , Ġmetadata Operator Mock , Ġquery Operator Mock ) Ġ= ĠdataSet Mocks () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( csv DataSet Mock , Ġcsv Metadata Operator Mock , Ġcsv Query Operator Mock ) Ġ= Ġcsv DataSet Mocks () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstore Mock Ġ= Ġmock k < Extension Context . Store >( relax Unit Fun Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexpected Column By Table Ġ= Ġmap Of (" table " Ġto Ġmap Of (" 1 " Ġto ĠCol Type . INTEGER )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġstore Mock . remove ( any ()) Ġ} Ġreturns Ġexpected Column By Table ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġgiven ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdb R ac co on Extension Ġ= Ġspy k ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDb R ac co on Extension ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠdataSource Mock , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcleanup Phase , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcleanup Strategy ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġdb R ac co on Extension . get Store ( context Mock ) Ġ} Ġreturns Ġstore Mock ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġdb R ac co on Extension . getData Set ( context Mock ) Ġ} Ġreturns ĠdataSet Mock ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġdb R ac co on Extension . getC sv DataSet ( context Mock ) Ġ} Ġreturns Ġcsv DataSet Mock ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġwhen ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdb R ac co on Extension . after Test Execution ( context Mock ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ ĠdataSet Mock . create Delete Query Operator ( expected Column By Table , Ġcleanup Strategy ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġquery Operator Mock . execute Queries ( conn Mock ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġcsv DataSet Mock . create Delete Query Operator ( expected Column By Table , Ġcleanup Strategy ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġcsv Query Operator Mock . execute Queries ( conn Mock ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġstore Mock . remove (" column Metadata By Table ") Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` before Test Execution Ġdo Ġnothing Ġwhen Ġthere Ġare Ġno Ġannotations `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġmocks ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( dataSource Mock ) Ġ= ĠdataSource Mocks () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontext Mock Ġ= Ġmock k < Extension Context >( relax Unit Fun Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( data Set Mock , Ġmetadata Operator Mock , Ġquery Operator Mock ) Ġ= ĠdataSet Mocks () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( csv DataSet Mock , Ġcsv Metadata Operator Mock , Ġcsv Query Operator Mock ) Ġ= Ġcsv DataSet Mocks () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstore Mock Ġ= Ġmock k < Extension Context . Store >( relax Unit Fun Ġ= Ġtrue ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġgiven ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdb R ac co on Extension Ġ= Ġspy k ( Db R ac co on Extension ( dataSource Mock )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġdb R ac co on Extension . getData Set ( context Mock ) Ġ} Ġreturns Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġdb R ac co on Extension . getC sv DataSet ( context Mock ) Ġ} Ġreturns Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġdb R ac co on Extension . get Store ( context Mock ) Ġ} Ġreturns Ġstore Mock ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġwhen ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdb R ac co on Extension . before Test Execution ( context Mock ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 0 ) Ġ{ ĠdataSet Mock . create Delete Query Operator ( any (), Ġany ()) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 0 ) Ġ{ ĠdataSet Mock . create Delete Query Operator ( any (), Ġany ()) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 0 ) Ġ{ ĠdataSet Mock . create Insert Query Operator ( any ()) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 0 ) Ġ{ Ġmetadata Operator Mock . execute ( any ()) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 0 ) Ġ{ Ġquery Operator Mock . execute Queries ( any ()) Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 0 ) Ġ{ Ġcsv DataSet Mock . create Delete Query Operator ( any (), Ġany ()) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 0 ) Ġ{ Ġcsv DataSet Mock . create Delete Query Operator ( any (), Ġany ()) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 0 ) Ġ{ Ġcsv DataSet Mock . create Insert Query Operator ( any ()) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 0 ) Ġ{ Ġcsv Metadata Operator Mock . execute ( any ()) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 0 ) Ġ{ Ġcsv Query Operator Mock . execute Queries ( any ()) Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 0 ) Ġ{ Ġstore Mock . put ( any (), Ġany ()) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` after Test Execution Ġdo Ġnothing Ġwhen Ġthere Ġare Ġno Ġannotations `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġmocks ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( dataSource Mock ) Ġ= ĠdataSource Mocks () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontext Mock Ġ= Ġmock k < Extension Context >( relax Unit Fun Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( data Set Mock , Ġmetadata Operator Mock , Ġquery Operator Mock ) Ġ= ĠdataSet Mocks () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( csv DataSet Mock , Ġcsv Metadata Operator Mock , Ġcsv Query Operator Mock ) Ġ= Ġcsv DataSet Mocks () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstore Mock Ġ= Ġmock k < Extension Context . Store >( relax Unit Fun Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexpected Column By Table Ġ= Ġmap Of (" table " Ġto Ġmap Of (" 1 " Ġto ĠCol Type . INTEGER )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġstore Mock . remove ( any ()) Ġ} Ġreturns Ġexpected Column By Table ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġgiven ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdb R ac co on Extension Ġ= Ġspy k ( Db R ac co on Extension ( dataSource Mock )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġdb R ac co on Extension . get Store ( context Mock ) Ġ} Ġreturns Ġstore Mock ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġdb R ac co on Extension . getData Set ( context Mock ) Ġ} Ġreturns Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġdb R ac co on Extension . getC sv DataSet ( context Mock ) Ġ} Ġreturns Ġnull ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġwhen ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdb R ac co on Extension . after Test Execution ( context Mock ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 0 ) Ġ{ ĠdataSet Mock . create Delete Query Operator ( any (), Ġany ()) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 0 ) Ġ{ ĠdataSet Mock . create Insert Query Operator ( any ()) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 0 ) Ġ{ Ġquery Operator Mock . execute Queries ( any ()) Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 0 ) Ġ{ Ġcsv DataSet Mock . create Delete Query Operator ( any (), Ġany ()) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 0 ) Ġ{ Ġcsv DataSet Mock . create Insert Query Operator ( any ()) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 0 ) Ġ{ Ġcsv Query Operator Mock . execute Queries ( any ()) Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġstore Mock . remove (" column Metadata By Table ") Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Parameterized Test ( name Ġ= Ġ" when Ġ{ 0 } Ġis Ġpassed ") ĊĠĠĠĠĠĠĠ Ġ@ Csv Source ( value Ġ= Ġ[" BEFORE _ TEST "]) ĊĠĠĠĠĠĠĠ Ġfun Ġ` after Test Execution Ġdelete Ġdoes Ġnot Ġwork `( cleanup Phase : ĠCleanup Phase ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġmocks ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( dataSource Mock , Ġconn Mock ) Ġ= ĠdataSource Mocks () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontext Mock Ġ= Ġmock k < Extension Context >( relax Unit Fun Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( data Set Mock , Ġmetadata Operator Mock , Ġquery Operator Mock ) Ġ= ĠdataSet Mocks () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( csv DataSet Mock , Ġcsv Metadata Operator Mock , Ġcsv Query Operator Mock ) Ġ= Ġcsv DataSet Mocks () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstore Mock Ġ= Ġmock k < Extension Context . Store >( relax Unit Fun Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexpected Column By Table Ġ= Ġmap Of (" table " Ġto Ġmap Of (" 1 " Ġto ĠCol Type . INTEGER )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġstore Mock . remove ( any ()) Ġ} Ġreturns Ġexpected Column By Table ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġgiven ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdb R ac co on Extension Ġ= Ġspy k ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDb R ac co on Extension ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠdataSource Mock , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcleanup Phase ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġdb R ac co on Extension . get Store ( context Mock ) Ġ} Ġreturns Ġstore Mock ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġdb R ac co on Extension . getData Set ( context Mock ) Ġ} Ġreturns ĠdataSet Mock ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġdb R ac co on Extension . getC sv DataSet ( context Mock ) Ġ} Ġreturns Ġcsv DataSet Mock ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġwhen ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdb R ac co on Extension . after Test Execution ( context Mock ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 0 ) Ġ{ ĠdataSet Mock . create Delete Query Operator ( any (), Ġany ()) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 0 ) Ġ{ Ġquery Operator Mock . execute Queries ( any ()) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 0 ) Ġ{ Ġcsv DataSet Mock . create Delete Query Operator ( any (), Ġany ()) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 0 ) Ġ{ Ġcsv Query Operator Mock . execute Queries ( any ()) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġstore Mock . remove (" column Metadata By Table ") Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Test ĊĠĠĠĠĠĠĠ Ġfun Ġ` after Test Execution Ġdo Ġnothing Ġwhen Ġthere Ġis Ġno Ġstore Ġdata `() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġmocks ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( dataSource Mock ) Ġ= ĠdataSource Mocks () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontext Mock Ġ= Ġmock k < Extension Context >( relax Unit Fun Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( data Set Mock , Ġmetadata Operator Mock , Ġquery Operator Mock ) Ġ= ĠdataSet Mocks () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( csv DataSet Mock , Ġcsv Metadata Operator Mock , Ġcsv Query Operator Mock ) Ġ= Ġcsv DataSet Mocks () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstore Mock Ġ= Ġmock k < Extension Context . Store >( relax Unit Fun Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġno Ġstore Ġdata ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġstore Mock . remove ( any ()) Ġ} Ġreturns Ġnull ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġgiven ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdb R ac co on Extension Ġ= Ġspy k ( Db R ac co on Extension ( dataSource Mock )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġdb R ac co on Extension . get Store ( context Mock ) Ġ} Ġreturns Ġstore Mock ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġdb R ac co on Extension . getData Set ( context Mock ) Ġ} Ġreturns ĠdataSet Mock ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġdb R ac co on Extension . getC sv DataSet ( context Mock ) Ġ} Ġreturns Ġcsv DataSet Mock ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġwhen ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdb R ac co on Extension . after Test Execution ( context Mock ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 0 ) Ġ{ ĠdataSet Mock . create Delete Query Operator ( any (), Ġany ()) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 0 ) Ġ{ ĠdataSet Mock . create Insert Query Operator ( any ()) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 0 ) Ġ{ Ġquery Operator Mock . execute Queries ( any ()) Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 0 ) Ġ{ Ġcsv DataSet Mock . create Delete Query Operator ( any (), Ġany ()) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 0 ) Ġ{ Ġcsv DataSet Mock . create Insert Query Operator ( any ()) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 0 ) Ġ{ Ġcsv Query Operator Mock . execute Queries ( any ()) Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġstore Mock . remove (" column Metadata By Table ") Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Nested ĊĠĠĠ Ġ@ DisplayName (" The Ġtest Ġcases Ġfor Ġthe Ġoptions Ġof ĠDb R ac co on Ext ention Ġconstructor ") ĊĠĠĠ Ġinner Ġclass ĠConstructor Option Cases Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ BeforeEach ĊĠĠĠĠĠĠĠ Ġfun ĠsetUp () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmock k Constructor ( Plain Query Operator :: class ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ After Each ĊĠĠĠĠĠĠĠ Ġfun ĠtearDown () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġun mock k Constructor ( Plain Query Operator :: class ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Parameterized Test ( name Ġ= Ġ" when Ġ{ 0 } Ġis Ġpassed ") ĊĠĠĠĠĠĠĠ Ġ@ Csv Source ( value Ġ= Ġ[" BEFORE _ AND _ AFTER _ TEST , ĠUSE D _ ROWS ", Ġ" BEFORE _ TEST , ĠUSE D _ TABLE S "]) ĊĠĠĠĠĠĠĠ Ġfun Ġ` before Test Execution Ġtear Ġset Ġup Ġqueries Ġexecutes Ġwhen Ġthe ĠsetUp Queries Ġoption Ġis Ġpassed `( cleanup Phase : ĠCleanup Phase , Ġcleanup Strategy : ĠCleanup Strategy ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġmocks ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( dataSource Mock ) Ġ= ĠdataSource Mocks () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontext Mock Ġ= Ġmock k < Extension Context >( relax Unit Fun Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġany Construct ed < Plain Query Operator >(). execute Queries ( any ()) Ġ} Ġreturns ĠUnit ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġgiven ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdb R ac co on Extension Ġ= Ġspy k ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDb R ac co on Extension ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠdataSource Ġ= ĠdataSource Mock , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcleanup Phase Ġ= Ġcleanup Phase , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcleanup Strategy Ġ= Ġcleanup Strategy , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsetUp Queries Ġ= ĠlistOf (" SET ĠFOREIGN _ KEY _ CHECKS Ġ= Ġ 0 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġdb R ac co on Extension . get Store ( context Mock ) Ġ} Ġreturns Ġmock k < Extension Context . Store >( relax Unit Fun Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġdb R ac co on Extension . getData Set ( context Mock ) Ġ} Ġreturns Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġdb R ac co on Extension . getC sv DataSet ( context Mock ) Ġ} Ġreturns Ġnull ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġwhen ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdb R ac co on Extension . before Test Execution ( context Mock ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġset Ġup Ġqueries Ġexecution Ġis Ġnot Ġaffected Ġby Ġcleanup Phase Ġoption ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġany Construct ed < Plain Query Operator >(). execute Queries ( any ()) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Parameterized Test ( name Ġ= Ġ" when Ġ{ 0 } Ġis Ġpassed ") ĊĠĠĠĠĠĠĠ Ġ@ Csv Source ( value Ġ= Ġ[" BEFORE _ AND _ AFTER _ TEST , ĠUSE D _ ROWS ", Ġ" BEFORE _ TEST , ĠUSE D _ TABLE S "]) ĊĠĠĠĠĠĠĠ Ġfun Ġ` after Test Execution Ġtear Ġdown Ġqueries Ġexecutes Ġwhen Ġthe ĠtearDown Queries Ġoption Ġis Ġpassed `( cleanup Phase : ĠCleanup Phase , Ġcleanup Strategy : ĠCleanup Strategy ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġmocks ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( dataSource Mock ) Ġ= ĠdataSource Mocks () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontext Mock Ġ= Ġmock k < Extension Context >( relax Unit Fun Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstore Mock Ġ= Ġmock k < Extension Context . Store >( relax Unit Fun Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġstore Mock . remove ( any ()) Ġ} Ġreturns Ġmap Of (" table " Ġto Ġmap Of (" 1 " Ġto ĠCol Type . INTEGER )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġany Construct ed < Plain Query Operator >(). execute Queries ( any ()) Ġ} Ġreturns ĠUnit ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġgiven ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdb R ac co on Extension Ġ= Ġspy k ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDb R ac co on Extension ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠdataSource Ġ= ĠdataSource Mock , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcleanup Phase Ġ= Ġcleanup Phase , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcleanup Strategy Ġ= Ġcleanup Strategy , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠtearDown Queries Ġ= ĠlistOf (" SET ĠFOREIGN _ KEY _ CHECKS Ġ= Ġ 1 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġdb R ac co on Extension . get Store ( context Mock ) Ġ} Ġreturns Ġstore Mock ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġdb R ac co on Extension . getData Set ( context Mock ) Ġ} Ġreturns Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevery Ġ{ Ġdb R ac co on Extension . getC sv DataSet ( context Mock ) Ġ} Ġreturns Ġnull ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġwhen ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdb R ac co on Extension . after Test Execution ( context Mock ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġthen ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġtear Ġdown Ġqueries Ġexecution Ġis Ġnot Ġaffected Ġby Ġcleanup Phase Ġoption ĊĠĠĠĠĠĠĠĠĠĠĠ Ġverify ( exact ly Ġ= Ġ 1 ) Ġ{ Ġany Construct ed < Plain Query Operator >(). execute Queries ( any ()) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }