package Ġorg . ev om aster . core . database . extract . postgres Ċ Ċ import Ġorg . ev om aster . client . java . controller . api . dto . database . schema . Database Type Ċ import Ġorg . ev om aster . client . java . controller . internal . db . Schema Extractor Ċ import Ġorg . ev om aster . core . database . Sql Insert Builder Ċ import Ġorg . ev om aster . core . search . gene .* Ċ import Ġorg . ev om aster . core . search . gene . regex . Regex Gene Ċ import Ġorg . ev om aster . core . search . gene . sql .* Ċ import Ġorg . jetbrains . kotlin . utils . addTo Std lib . first Is Instance Ċ import Ġorg . junit . jupiter . api . Assertions .* Ċ import Ġorg . junit . jupiter . api . Test Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġar cur i 8 2 Ġon Ġ 0 1 - Apr - 1 9 . Ċ Ġ*/ Ċ class ĠInd 0 Extract Test Ġ: ĠExtract TestBase Postgres () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġget Schema Location () Ġ= Ġ"/ sql _ schema / ind _ 0 . sql " ĊĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Create And Extract () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġschema Ġ= ĠSchema Extractor . extract ( connection ) ĊĊĠĠĠĠĠĠĠ ĠassertNotNull ( schema ) ĊĊĠĠĠĠĠĠĠ ĠassertEquals (" public ", Ġschema . name . toLowerCase ()) ĊĠĠĠĠĠĠĠ ĠassertEquals ( Database Type . POST GRES , Ġschema . database Type ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( schema . tables . any Ġ{ Ġit . name Ġ== Ġ" x " Ġ}) ĊĠĠĠĠĠĠĠ ĠassertTrue ( schema . tables . any Ġ{ Ġit . name Ġ== Ġ" y " Ġ}) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 1 , Ġschema . tables . first Ġ{ Ġit . name Ġ== Ġ" x " Ġ}. columns . size ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 7 , Ġschema . tables . first Ġ{ Ġit . name Ġ== Ġ" y " Ġ}. columns . size ) ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( schema . tables . first Ġ{ Ġit . name Ġ== Ġ" x " Ġ}. columns . any Ġ{ Ġit . type . equals (" xml ", Ġtrue ) Ġ}) ĊĠĠĠĠĠĠĠ ĠassertTrue ( schema . tables . first Ġ{ Ġit . name Ġ== Ġ" y " Ġ}. columns . any Ġ{ Ġit . type . equals (" json b ", Ġtrue ) Ġ}) ĊĊĠĠĠĠĠĠĠ ĠassertEquals ( 4 , Ġschema . tables . first Ġ{ Ġit . name Ġ== Ġ" x " Ġ}. table Check Expressions . size ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( 1 , Ġschema . tables . first Ġ{ Ġit . name Ġ== Ġ" y " Ġ}. table Check Expressions . size ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġconstraints Ġon ĠX Ġtable ĊĠĠĠĠĠĠĠ ĠassertTrue ( schema . tables . first Ġ{ Ġit . name Ġ== Ġ" x " Ġ}. table Check Expressions . any Ġ{ Ġit . sql Check Expression . equals ("( status Ġ= ĠANY Ġ( ARRAY [' A ':: text , Ġ' B ':: text ])) ") Ġ}); ĊĠĠĠĠĠĠĠ ĠassertTrue ( schema . tables . first Ġ{ Ġit . name Ġ== Ġ" x " Ġ}. table Check Expressions . any Ġ{ Ġit . sql Check Expression . equals (" (( status Ġ= Ġ' B ':: text ) Ġ= Ġ( p _ at ĠIS ĠNOT ĠNULL )) ") Ġ}); ĊĠĠĠĠĠĠĠ ĠassertTrue ( schema . tables . first Ġ{ Ġit . name Ġ== Ġ" x " Ġ}. table Check Expressions . any Ġ{ Ġit . sql Check Expression . equals (" (( f _ id Ġ~~ Ġ' hi ':: text ) ĠOR Ġ( f _ id Ġ~~ Ġ'% foo %' :: text ) ĠOR Ġ( f _ id Ġ~~ Ġ'% foo % x %' :: text ) ĠOR Ġ( f _ id Ġ~~ Ġ'% bar %' :: text ) ĠOR Ġ( f _ id Ġ~~ Ġ'% bar % y %' :: text ) ĠOR Ġ( f _ id Ġ~~ Ġ'% hello %' :: text )) ") Ġ}); ĊĠĠĠĠĠĠĠ ĠassertTrue ( schema . tables . first Ġ{ Ġit . name Ġ== Ġ" x " Ġ}. table Check Expressions . any Ġ{ Ġit . sql Check Expression . equals ("( w _ id Ġ~ Ġsimilar _ escape ('/ foo / __/ bar /( left | right )/ [ 0 - 9 ]{ 4 }- [ 0 - 9 ]{ 2 }- [ 0 - 9 ]{ 2 } (/ [ 0 - 9 ]*) ?' :: text , ĠNULL :: text )) ") Ġ}); ĊĊĠĠĠĠĠĠĠ Ġ// Ġconstraints Ġon ĠY Ġtable ĊĠĠĠĠĠĠĠ ĠassertTrue ( schema . tables . first Ġ{ Ġit . name Ġ== Ġ" y " Ġ}. table Check Expressions . any Ġ{ Ġit . sql Check Expression . equals ("( status Ġ= ĠANY Ġ( ARRAY [' A ':: text , Ġ' B ':: text , Ġ' C ':: text , Ġ' D ':: text , Ġ' E ':: text ])) ") Ġ}); ĊĊĊĠĠĠĠĠĠĠ Ġ// TODO Ġcheck Ġthe Ġ 3 Ġviews ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Date Gene Creation () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġschema Ġ= ĠSchema Extractor . extract ( connection ) ĊĊĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠSql Insert Builder ( schema ) ĊĠĠĠĠĠĠĠ Ġval Ġactions Ġ= Ġbuilder . create Sql Insertion Action (" x ", Ġset Of (" expr _ date ")) ĊĠĠĠĠĠĠĠ Ġval Ġgenes Ġ= Ġactions [ 0 ]. see Gen es () ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( genes . any Ġ{ Ġit Ġis ĠDate Gene Ġ}) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest UUID Gene Creation () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġschema Ġ= ĠSchema Extractor . extract ( connection ) ĊĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠSql Insert Builder ( schema ) ĊĠĠĠĠĠĠĠ Ġval Ġactions Ġ= Ġbuilder . create Sql Insertion Action (" x ", Ġset Of (" id ")) ĊĠĠĠĠĠĠĠ Ġval Ġgenes Ġ= Ġactions [ 0 ]. see Gen es () ĊĠĠĠĠĠĠĠ ĠassertTrue ( genes . first Is Instance < Sql PrimaryKey Gene >(). gene Ġis ĠSql UUID Gene ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest XML Gene Creation () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġschema Ġ= ĠSchema Extractor . extract ( connection ) ĊĊĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠSql Insert Builder ( schema ) ĊĠĠĠĠĠĠĠ Ġval Ġactions Ġ= Ġbuilder . create Sql Insertion Action (" x ", Ġset Of (" xml Data ")) ĊĠĠĠĠĠĠĠ Ġval Ġgenes Ġ= Ġactions [ 0 ]. see Gen es () ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( genes . any Ġ{ Ġit Ġis ĠSql XML Gene Ġ}) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest JSON Gene Creation () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġschema Ġ= ĠSchema Extractor . extract ( connection ) ĊĊĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠSql Insert Builder ( schema ) ĊĠĠĠĠĠĠĠ Ġval Ġactions Ġ= Ġbuilder . create Sql Insertion Action (" y ", Ġset Of (" json Data ")) ĊĠĠĠĠĠĠĠ Ġval Ġgenes Ġ= Ġactions [ 0 ]. see Gen es (). flatMap Ġ{ Ġit . flat View () Ġ} ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( genes . any Ġ{ Ġit Ġis ĠSql JSON Gene Ġ}) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Similar To Gene Creation () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġschema Ġ= ĠSchema Extractor . extract ( connection ) ĊĊĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠSql Insert Builder ( schema ) ĊĠĠĠĠĠĠĠ Ġval Ġactions Ġ= Ġbuilder . create Sql Insertion Action (" x ", Ġset Of (" w _ id ")) ĊĠĠĠĠĠĠĠ Ġval Ġgenes Ġ= Ġactions [ 0 ]. see Gen es () ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( genes . any Ġ{ Ġit Ġis ĠRegex Gene Ġ}) ĊĠĠĠĠĠĠĠ ĠassertTrue ( genes . filter Is Instance < Regex Gene >(). any Ġ{ Ġg Ġ-> Ġg . name . equals (" w _ id ", Ġignore Case Ġ= Ġtrue ) Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Like Gene Creation () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġschema Ġ= ĠSchema Extractor . extract ( connection ) ĊĊĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠSql Insert Builder ( schema ) ĊĠĠĠĠĠĠĠ Ġval Ġactions Ġ= Ġbuilder . create Sql Insertion Action (" x ", Ġset Of (" f _ id ")) ĊĠĠĠĠĠĠĠ Ġval Ġgenes Ġ= Ġactions [ 0 ]. see Gen es () ĊĊĠĠĠĠĠĠĠ ĠassertTrue ( genes . any Ġ{ Ġit Ġis ĠRegex Gene Ġ}) ĊĠĠĠĠĠĠĠ Ġval Ġregex Gene Ġ= Ġgenes . first Is Instance < Regex Gene >() ĊĠĠĠĠĠĠĠ ĠassertTrue ( genes . filter Is Instance < Regex Gene >(). any Ġ{ Ġg Ġ-> Ġg . name . equals (" f _ id ", Ġignore Case Ġ= Ġtrue ) Ġ}) ĊĠĠĠ Ġ} Ċ Ċ }