@@ -581,68 +581,6 @@ internal class JdbcDatabaseMetaDataTest {
581581 assertTrue(metaData.supportsConvert(Types .INTEGER , Types .VARCHAR ))
582582 }
583583
584- private fun makeTablesCursor (): ICursor {
585- val n = arrayOf(" TABLE_CAT" , " TABLE_SCHEM" , " TABLE_NAME" , " TABLE_TYPE" , " REMARKS" ,
586- " TYPE_CAT" , " TYPE_SCHEM" , " TYPE_NAME" , " SELF_REFERENCING_COL_NAME" , " REF_GENERATION" )
587- return mock {
588- var c = 0
589- whenever(it.moveToNext()) doAnswer { ++ c == 1 }
590- whenever(it.columnCount) doReturn n.size
591- whenever(it.columnNames()) doReturn n
592- whenever(it.columnIndex(any())) doAnswer { inv -> n.indexOf(inv .getArgument<String >(0 )) }
593- whenever(it.getString(any())) doAnswer { inv ->
594- if (n.getOrNull(inv .getArgument<Int >(0 )) == " TABLE_NAME" ) " test_table" else null
595- }
596- whenever(it.isClosed()) doReturn false
597- }
598- }
599-
600- @Suppress(" Detekt.CognitiveComplexMethod" )
601- private fun makePragmaCursor (cols : List <List <Any ?>>): ICursor {
602- val n = arrayOf(" cid" , " name" , " type" , " notnull" , " dflt_value" , " pk" )
603- return mock {
604- var c = 0
605- whenever(it.moveToNext()) doAnswer { ++ c <= cols.size }
606- whenever(it.columnCount) doReturn n.size
607- whenever(it.columnNames()) doReturn n
608- whenever(it.columnIndex(any())) doAnswer { inv -> n.indexOf(inv .getArgument<String >(0 )) }
609- whenever(it.getString(any())) doAnswer { inv ->
610- if (c in 1 .. cols.size) cols[c - 1 ].getOrNull(inv .getArgument<Int >(0 ))?.toString() else null
611- }
612- whenever(it.getInt(any())) doAnswer { inv ->
613- if (c in 1 .. cols.size) cols[c - 1 ].getOrNull(inv .getArgument<Int >(0 )) as ? Int ? : 0 else 0
614- }
615- whenever(it.position()) doAnswer { c - 1 }
616- whenever(it.type(any())) doAnswer { inv ->
617- when (inv .getArgument<Int >(0 )) {
618- 0 , 3 , 5 -> ColumnType .INTEGER
619- 4 -> ColumnType .NULL
620- else -> ColumnType .STRING
621- }
622- }
623- whenever(it.isNull(any())) doAnswer { inv ->
624- if (c in 1 .. cols.size) cols[c - 1 ].getOrNull(inv .getArgument<Int >(0 )) == null else true
625- }
626- whenever(it.isClosed()) doReturn false
627- }
628- }
629-
630- private fun makeEmptyCursor (count : Int , names : Array <String >): ICursor = mock {
631- whenever(it.moveToNext()) doReturn false
632- whenever(it.columnCount) doReturn count
633- whenever(it.columnNames()) doReturn names
634- whenever(it.isClosed()) doReturn false
635- }
636-
637- private val colsResultNames = arrayOf(
638- " TABLE_CAT" , " TABLE_SCHEM" , " TABLE_NAME" , " COLUMN_NAME" , " DATA_TYPE" , " TYPE_NAME" ,
639- " COLUMN_SIZE" , " BUFFER_LENGTH" , " DECIMAL_DIGITS" , " NUM_PREC_RADIX" , " NULLABLE" ,
640- " REMARKS" , " COLUMN_DEF" , " SQL_DATA_TYPE" , " SQL_DATETIME_SUB" , " CHAR_OCTET_LENGTH" ,
641- " ORDINAL_POSITION" , " IS_NULLABLE" , " SCOPE_CATALOG" , " SCOPE_SCHEMA" , " SCOPE_TABLE" ,
642- " SOURCE_DATA_TYPE" , " IS_AUTOINCREMENT" , " IS_GENERATEDCOLUMN" )
643-
644- private val pkNames = arrayOf(
645- " TABLE_CAT" , " TABLE_SCHEM" , " TABLE_NAME" , " COLUMN_NAME" , " KEY_SEQ" , " PK_NAME" )
646584
647585 @Suppress(" Detekt.CognitiveComplexMethod" , " Detekt.LongMethod" )
648586 @Test
@@ -834,4 +772,87 @@ internal class JdbcDatabaseMetaDataTest {
834772 whenever(mockDatabase.query(any<String >(), any<Array <Any ?>>())).doReturn(mockCursor)
835773 assertNotNull(metaData.getIndexInfo(null , null , " users" , unique = false , approximate = false ))
836774 }
775+
776+ private fun makeTablesCursor (): ICursor {
777+ val columns = arrayOf(" TABLE_CAT" , " TABLE_SCHEM" , " TABLE_NAME" , " TABLE_TYPE" , " REMARKS" ,
778+ " TYPE_CAT" , " TYPE_SCHEM" , " TYPE_NAME" , " SELF_REFERENCING_COL_NAME" , " REF_GENERATION" )
779+ return mock {
780+ var count = 0
781+ whenever(it.moveToNext()) doAnswer { ++ count == 1 }
782+ whenever(it.columnCount) doReturn columns.size
783+ whenever(it.columnNames()) doReturn columns
784+ whenever(it.columnIndex(any())) doAnswer { invocation ->
785+ columns.indexOf(invocation.getArgument<String >(0 ))
786+ }
787+ whenever(it.getString(any())) doAnswer { invocation ->
788+ if (columns.getOrNull(invocation.getArgument<Int >(0 )) == " TABLE_NAME" ) {
789+ " test_table"
790+ } else {
791+ null
792+ }
793+ }
794+ whenever(it.isClosed()) doReturn false
795+ }
796+ }
797+
798+ @Suppress(" Detekt.CognitiveComplexMethod" )
799+ private fun makePragmaCursor (cols : List <List <Any ?>>): ICursor {
800+ val columns = arrayOf(" cid" , " name" , " type" , " notnull" , " dflt_value" , " pk" )
801+ return mock {
802+ var count = 0
803+ whenever(it.moveToNext()) doAnswer { ++ count <= cols.size }
804+ whenever(it.columnCount) doReturn columns.size
805+ whenever(it.columnNames()) doReturn columns
806+ whenever(it.columnIndex(any())) doAnswer { invocation ->
807+ columns.indexOf(invocation.getArgument<String >(0 ))
808+ }
809+ whenever(it.getString(any())) doAnswer { invocation ->
810+ if (count in 1 .. cols.size) {
811+ cols[count - 1 ].getOrNull(invocation.getArgument<Int >(0 ))?.toString()
812+ } else {
813+ null
814+ }
815+ }
816+ whenever(it.getInt(any())) doAnswer { invocation ->
817+ if (count in 1 .. cols.size) {
818+ cols[count - 1 ].getOrNull(invocation.getArgument<Int >(0 )) as ? Int ? : 0
819+ } else {
820+ 0
821+ }
822+ }
823+ whenever(it.position()) doAnswer { count - 1 }
824+ whenever(it.type(any())) doAnswer { invocation ->
825+ when (invocation.getArgument<Int >(0 )) {
826+ 0 , 3 , 5 -> ColumnType .INTEGER
827+ 4 -> ColumnType .NULL
828+ else -> ColumnType .STRING
829+ }
830+ }
831+ whenever(it.isNull(any())) doAnswer { invocation ->
832+ if (count in 1 .. cols.size) {
833+ cols[count - 1 ].getOrNull(invocation.getArgument<Int >(0 )) == null
834+ } else {
835+ true
836+ }
837+ }
838+ whenever(it.isClosed()) doReturn false
839+ }
840+ }
841+
842+ private fun makeEmptyCursor (count : Int , names : Array <String >): ICursor = mock {
843+ whenever(it.moveToNext()) doReturn false
844+ whenever(it.columnCount) doReturn count
845+ whenever(it.columnNames()) doReturn names
846+ whenever(it.isClosed()) doReturn false
847+ }
848+
849+ private val colsResultNames = arrayOf(
850+ " TABLE_CAT" , " TABLE_SCHEM" , " TABLE_NAME" , " COLUMN_NAME" , " DATA_TYPE" , " TYPE_NAME" ,
851+ " COLUMN_SIZE" , " BUFFER_LENGTH" , " DECIMAL_DIGITS" , " NUM_PREC_RADIX" , " NULLABLE" ,
852+ " REMARKS" , " COLUMN_DEF" , " SQL_DATA_TYPE" , " SQL_DATETIME_SUB" , " CHAR_OCTET_LENGTH" ,
853+ " ORDINAL_POSITION" , " IS_NULLABLE" , " SCOPE_CATALOG" , " SCOPE_SCHEMA" , " SCOPE_TABLE" ,
854+ " SOURCE_DATA_TYPE" , " IS_AUTOINCREMENT" , " IS_GENERATEDCOLUMN" )
855+
856+ private val pkNames = arrayOf(
857+ " TABLE_CAT" , " TABLE_SCHEM" , " TABLE_NAME" , " COLUMN_NAME" , " KEY_SEQ" , " PK_NAME" )
837858}
0 commit comments