/* Ċ Ġ* ĠCopyright Ġ 2 0 2 2 ĠEric ĠA . ĠSn ell Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . e al va . to que . db . wildcard Ċ Ċ import Ġcom . e al va . to que . common . as Filter Ċ import Ġcom . e al va . to que . db . wildcard . Sqlite Like . wrap For Like Ċ import Ġcom . e al va . to que . db . wildcard . Sqlite Like . like Esc aped Ċ import Ġcom . e al va . to que . db . wildcard . Sqlite Like . not Like Esc aped Ċ import Ġcom . e al va . to que . db . wildcard . Sqlite Like . wrap As Filter Ċ import Ġcom . e al va . w elite . db . table . Table Ċ import Ġcom . n ha ar man . expect . expect Ċ import Ġorg . junit . Test Ċ Ċ class ĠSql ite Like Test Ġ{ ĊĠ Ġ@ Test ĊĠ Ġfun Ġtest String Like Wrapped () Ġ{ ĊĠĠĠ ĠlistOf ( ĊĠĠĠĠĠ Ġ"" Ġto Ġ"", ĊĠĠĠĠĠ Ġ" ab " Ġto Ġ"% ab %", ĊĠĠĠĠĠ Ġ"% a % b _ c _" Ġto Ġ""" %\ % a \% b \_ c \_ % """, ĊĠĠĠĠĠ Ġ""" \ """ Ġto Ġ""" % \\ % """, ĊĠĠĠĠĠ Ġ""" \% \_ \\ """ Ġto Ġ""" % \\\ % \\ \_ \\\\ % """ ĊĠĠĠ Ġ). forEach Ġ{ Ġ( actual , Ġexpected ) Ġ-> ĊĠĠĠĠĠ Ġexpect ( actual . wrap For Like ()). toBe ( expected ) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġtest String Like Begin sWith () Ġ{ ĊĠĠĠ ĠlistOf ( ĊĠĠĠĠĠ Ġ"" Ġto Ġ"", ĊĠĠĠĠĠ Ġ" ab " Ġto Ġ" ab %", ĊĠĠĠĠĠ Ġ"% a % b _ c _" Ġto Ġ""" \% a \% b \_ c \_ % """, ĊĠĠĠĠĠ Ġ""" \ """ Ġto Ġ""" \\ % """, ĊĠĠĠĠĠ Ġ""" \% \_ \\ """ Ġto Ġ""" \\\ % \\ \_ \\\\ % """ ĊĊĠĠĠ Ġ). forEach Ġ{ Ġ( actual , Ġexpected ) Ġ-> ĊĠĠĠĠĠ Ġexpect ( actual . wrap For Like ( prefix Ġ= Ġ" ")). toBe ( expected ) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġtest String Like EndsWith () Ġ{ ĊĠĠĠ ĠlistOf ( ĊĠĠĠĠĠ Ġ"" Ġto Ġ"", ĊĠĠĠĠĠ Ġ" ab " Ġto Ġ"% ab ", ĊĠĠĠĠĠ Ġ"% a % b _ c _" Ġto Ġ""" %\ % a \% b \_ c \_ """, ĊĠĠĠĠĠ Ġ""" \ """ Ġto Ġ""" % \\ """, ĊĠĠĠĠĠ Ġ""" \% \_ \\ """ Ġto Ġ""" % \\\ % \\ \_ \\\\ """ ĊĊĠĠĠ Ġ). forEach Ġ{ Ġ( actual , Ġexpected ) Ġ-> ĊĠĠĠĠĠ Ġexpect ( actual . wrap For Like ( postfix Ġ= Ġ" ")). toBe ( expected ) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġtest Like Esc aped () Ġ{ ĊĠĠĠ Ġval Ġthe Table Ġ= Ġobject Ġ: ĠTable (" The Table ") Ġ{ ĊĠĠĠĠĠ Ġval Ġthe Column Ġ= Ġtext (" the Column ") ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġop Ġ= Ġthe Table . the Column . like Esc aped (" find ") ĊĠĠĠ Ġexpect ( op . toString ()). toBe (""" The Table . the Column ĠLIKE Ġ'% find %' ĠESC APE Ġ'\' """) ĊĠ Ġ} ĊĊĊĠ Ġ@ Test ĊĠ Ġfun Ġtest Not Like Esc aped () Ġ{ ĊĠĠĠ Ġval Ġthe Table Ġ= Ġobject Ġ: ĠTable (" The Table ") Ġ{ ĊĠĠĠĠĠ Ġval Ġthe Column Ġ= Ġtext (" the Column ") ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġop Ġ= Ġthe Table . the Column . not Like Esc aped (" find ") ĊĠĠĠ Ġexpect ( op . toString ()). toBe (""" The Table . the Column ĠNOT ĠLIKE Ġ'% find %' ĠESC APE Ġ'\' """) ĊĠ Ġ} ĊĊĠ Ġ@ Test ĊĠ Ġfun Ġtest Wrap As Filter () Ġ{ ĊĠĠĠ ĠlistOf ( ĊĠĠĠĠĠ Ġ"" Ġto Ġ"", ĊĠĠĠĠĠ Ġ" ab " Ġto Ġ"% ab %", ĊĠĠĠĠĠ Ġ"% a % b _ c _" Ġto Ġ""" %\ % a \% b \_ c \_ % """, ĊĠĠĠĠĠ Ġ""" \ """ Ġto Ġ""" % \\ % """, ĊĠĠĠĠĠ Ġ""" \% \_ \\ """ Ġto Ġ""" % \\\ % \\ \_ \\\\ % """ ĊĠĠĠ Ġ). forEach Ġ{ Ġ( actual , Ġexpected ) Ġ-> ĊĠĠĠĠĠ Ġexpect ( actual . wrap As Filter ()). toBe ( expected . as Filter ) ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ