content: /*
   * This file was automatically generated by UTestGen and EvoSuite
   * Mon Mar 18 00:53:12 GMT 2024
   */
  
  package org.databene.jdbacl;
  
  import org.junit.jupiter.api.Test;
  import static org.junit.jupiter.api.Assertions.*;
  import org.junit.jupiter.api.Timeout;
  import java.util.concurrent.TimeUnit;
  import static org.evosuite.runtime.EvoAssertions.*;
  import org.apache.derby.iapi.store.raw.xact.RawTransaction;
  import org.databene.jdbacl.NameSpec;
  import org.databene.jdbacl.SQLUtil;
  import org.databene.jdbacl.model.DBCatalog;
  import org.databene.jdbacl.model.DBCheckConstraint;
  import org.databene.jdbacl.model.DBColumn;
  import org.databene.jdbacl.model.DBConstraint;
  import org.databene.jdbacl.model.DBDataType;
  import org.databene.jdbacl.model.DBForeignKeyConstraint;
  import org.databene.jdbacl.model.DBObject;
  import org.databene.jdbacl.model.DBSchema;
  import org.databene.jdbacl.model.DBTable;
  import org.databene.jdbacl.model.DBUniqueConstraint;
  import org.databene.jdbacl.model.DefaultDBColumn;
  import org.databene.jdbacl.model.DefaultDBTable;
  import org.databene.jdbacl.model.TableContainer;
  import org.evosuite.runtime.EvoRunner;
  import org.evosuite.runtime.EvoRunnerParameters;
  import org.evosuite.runtime.mock.java.io.MockPrintWriter;
  import org.junit.runner.RunWith;
  
  @RunWith(EvoRunner.class) @EvoRunnerParameters(mockJVMNonDeterminism = true, useVFS = true, useVNET = true, resetStaticState = true, separateClassLoader = true) 
  public class SQLUtil_Original_ESTest extends SQLUtil_Original_ESTest_scaffolding {
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testSubstituteMarkersReturningEmptyString() throws Throwable  {
        Object arg2 = new Object();
        String substituteMarkers = SQLUtil.substituteMarkers("", "org.apache.derby.impl.sql.compile.ConstantExpressionVisitor", arg2);
        assertEquals("", substituteMarkers);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testRenderWhereClauseReturningEmptyString() throws Throwable  {
        String[] arg1 = new String[0];
        String renderWhereClause = SQLUtil.renderWhereClause(arg1, arg1);
        assertEquals("", renderWhereClause);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testRemoveCommentsReturningNonEmptyString() throws Throwable  {
        String removeComments = SQLUtil.removeComments("alter indexrename");
        assertEquals("alter indexrename", removeComments);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testParseColumnTypeAndSize() throws Throwable  {
        Object[] parseColumnTypeAndSize = SQLUtil.parseColumnTypeAndSize("l~\"ocavhost");
        assertEquals(1, parseColumnTypeAndSize.length);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testCreateConstraintSpecBuilder() throws Throwable  {
        DBCheckConstraint arg0 = new DBCheckConstraint("vO|'3o 4p_|[&x&/", true, "',gzp'", "execnull = null and null = null and null = null and null = null");
        NameSpec arg1 = NameSpec.ALWAYS;
        StringBuilder createConstraintSpecBuilder = SQLUtil.createConstraintSpecBuilder(arg0, arg1);
        assertEquals("CONSTRAINT \"vO|'3o 4p_|[&x&/\" ", createConstraintSpecBuilder.toString());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testAppendConstraintNameTaking3ArgumentsReturningNonNull() throws Throwable  {
        DBCheckConstraint arg0 = new DBCheckConstraint("JABLE_YATALOG", true, "JABLE_YATALOG", "JABLE_YATALOG");
        StringBuilder arg1 = new StringBuilder();
        NameSpec arg2 = NameSpec.ALWAYS;
        SQLUtil.appendConstraintName((DBConstraint) arg0, arg1, arg2);
        assertEquals("CONSTRAINT JABLE_YATALOG ", arg1.toString());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testAppendConstraintNameTaking3ArgumentsReturningNull() throws Throwable  {
        DBCheckConstraint arg0 = new DBCheckConstraint("X", false, "X", "X");
        NameSpec arg2 = NameSpec.NEVER;
        StringBuilder appendConstraintName = SQLUtil.appendConstraintName((DBConstraint) arg0, (StringBuilder) null, arg2);
        assertNull(appendConstraintName);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testJoinThrowsNullPointerException() throws Throwable  {
        // Undeclared exception!
        try { 
          SQLUtil.join("vnkgGx)|ljcToD", "vnkgGx)|ljcToD", (String[]) null, "vnkgGx)|ljcToD", "vnkgGx)|ljcToD", (String[]) null);
          fail("Expecting exception: NullPointerException");
        
        } catch(NullPointerException e) {
           //
           // no message in exception (getMessage() returned null)
           //
           verifyException("org.databene.jdbacl.SQLUtil", e);
        }
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testIsQueryReturningTrue() throws Throwable  {
        boolean query = SQLUtil.isQuery("select intotable_catalog");
        assertTrue(query);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testIsQuery0() throws Throwable  {
        boolean query = SQLUtil.isQuery(" AND ");
        assertFalse(query);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testIsQuery1() throws Throwable  {
        boolean query = SQLUtil.isQuery("select into");
        assertFalse(query);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testIsProcedureCallReturningTrue() throws Throwable  {
        boolean procedureCall = SQLUtil.isProcedureCall("execygs4>/jk[^rk");
        assertTrue(procedureCall);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testIsProcedureCallReturningFalse() throws Throwable  {
        boolean procedureCall = SQLUtil.isProcedureCall("create unique index");
        assertFalse(procedureCall);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testIsDMLReturningTrue() throws Throwable  {
        boolean dML = SQLUtil.isDML("delete@#v3z~}{(b");
        assertTrue(dML);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testIsDMLReturningFalse() throws Throwable  {
        boolean dML = SQLUtil.isDML("WZ>]{n_w:6");
        assertFalse(dML);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testIsDDLReturningTrue() throws Throwable  {
        boolean dDL = SQLUtil.isDDL("alter indexreera3>0zq[");
        assertTrue(dDL);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testIsDDLReturningFalse() throws Throwable  {
        boolean dDL = SQLUtil.isDDL("2-w|P;)Q0>");
        assertFalse(dDL);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testMutatesStructure0() throws Throwable  {
        Boolean mutatesStructure = SQLUtil.mutatesStructure("PS(msz");
        assertFalse(mutatesStructure);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testMutatesStructureReturningTrue() throws Throwable  {
        Boolean mutatesStructure = SQLUtil.mutatesStructure("drop tablereera3>0zq[");
        assertTrue(mutatesStructure);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testRenderValueReturningNonEmptyString() throws Throwable  {
        String renderValue = SQLUtil.renderValue("}");
        assertEquals("'}'", renderValue);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testRenderValueReturningNull() throws Throwable  {
        DefaultDBTable arg0 = new DefaultDBTable((String) null);
        String renderValue = SQLUtil.renderValue(arg0);
        assertNull(renderValue);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void test0() throws Throwable  {
        DefaultDBTable arg1 = new DefaultDBTable("2-w|P;)Q0>");
        DBDataType arg2 = DBDataType.getInstance((-1896), "42Z20.S.1");
        Integer arg0 = RawTransaction.LOCK_ESCALATE;
        DefaultDBColumn defaultDBColumn = new DefaultDBColumn("drop indexconstraint", arg1, arg2, arg0);
        defaultDBColumn.setFractionDigits(arg0);
        String string = defaultDBColumn.toString();
        assertEquals("drop indexconstraint : 42Z20.S.1(3,3)", string);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testRenderColumnNamesTakingStringArray() throws Throwable  {
        String[] arg0 = new String[2];
        String renderColumnNames = SQLUtil.renderColumnNames(arg0);
        assertEquals("(, )", renderColumnNames);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testFkSpec() throws Throwable  {
        DefaultDBTable arg4 = new DefaultDBTable("localhost");
        String[] arg5 = new String[2];
        DBForeignKeyConstraint arg0 = new DBForeignKeyConstraint("localhost", false, arg4, arg5, arg4, arg5);
        NameSpec arg1 = NameSpec.NEVER;
        String fkSpec = SQLUtil.fkSpec(arg0, arg1);
        assertEquals("FOREIGN KEY (, ) REFERENCES localhost(, )", fkSpec);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testRenderColumnListWithTableNameReturningNonEmptyString() throws Throwable  {
        String[] arg1 = new String[2];
        String renderColumnListWithTableName = SQLUtil.renderColumnListWithTableName((String) null, arg1);
        assertEquals("null.null, null.null", renderColumnListWithTableName);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testRenderColumnListWithTableNameReturningEmptyString() throws Throwable  {
        String[] arg1 = new String[0];
        String renderColumnListWithTableName = SQLUtil.renderColumnListWithTableName("<8\"L]:}KA", arg1);
        assertEquals("", renderColumnListWithTableName);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testNormalize0() throws Throwable  {
        String normalize = SQLUtil.normalize("*hf%|V\"lJq", false);
        assertEquals("* hf % | V \"lJq\"", normalize);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testNormalize1() throws Throwable  {
        String normalize = SQLUtil.normalize("*/", false);
        assertEquals("*/", normalize);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testNormalize2() throws Throwable  {
        String normalize = SQLUtil.normalize("m --\n", false);
        assertEquals("m --", normalize);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testNormalize3() throws Throwable  {
        String normalize = SQLUtil.normalize("drop indexz>=bp/-uk#[]s!;? *.", false);
        assertEquals("drop indexz > = bp / - uk # [ ] s ! ; ? *.", normalize);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testNormalize4() throws Throwable  {
        String normalize = SQLUtil.normalize("/*", false);
        assertEquals("/*", normalize);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testNormalize5() throws Throwable  {
        String normalize = SQLUtil.normalize("org.apache.derby.iapi.sql.dictionary.StatementPermission", false);
        assertEquals("org.apache.derby.iapi.sql.dictionary.StatementPermission", normalize);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testNormalize6() throws Throwable  {
        String normalize = SQLUtil.normalize("(cs-'0DrAeGHZ'`O", false);
        assertEquals("(cs - '0DrAeGHZ' ` O", normalize);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testNormalize7() throws Throwable  {
        String arg0 = ">\\u3,>|^&9k6PP_";
        String normalize = SQLUtil.normalize(arg0, false);
        assertEquals("> \\ u3, > | ^ & 9k6PP_", normalize);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testNormalize8() throws Throwable  {
        String normalize = SQLUtil.normalize("go_u)?#Te!*u^rC", false);
        assertEquals("go_u) ? # Te ! * u ^ rC", normalize);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testNormalizeWithTrue() throws Throwable  {
        String normalize = SQLUtil.normalize(" NOT NULL", true);
        assertEquals("NOT NULL", normalize);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testNormalizeReturningEmptyString() throws Throwable  {
        String normalize = SQLUtil.normalize("", false);
        assertEquals("", normalize);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testRemoveCommentsReturningEmptyString() throws Throwable  {
        String removeComments = SQLUtil.removeComments("");
        assertEquals("", removeComments);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testTypeAndName0() throws Throwable  {
        DefaultDBTable arg0 = new DefaultDBTable();
        String typeAndName = SQLUtil.typeAndName(arg0);
        assertEquals("table null", typeAndName);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testTypeAndName1() throws Throwable  {
        TableContainer arg0 = new TableContainer("@{CjHNPaa#\":");
        String typeAndName = SQLUtil.typeAndName(arg0);
        assertEquals("container @{CjHNPaa#\":", typeAndName);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testTypeAndNameReturningNull() throws Throwable  {
        String typeAndName = SQLUtil.typeAndName((DBObject) null);
        assertNull(typeAndName);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testTypeAndName2() throws Throwable  {
        DBCheckConstraint arg0 = new DBCheckConstraint((String) null, false, "CLOB", "localhost");
        String typeAndName = SQLUtil.typeAndName(arg0);
        assertNotNull(typeAndName);
        assertEquals("check constraint constraint", typeAndName);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testConstraintNameReturningNonEmptyString() throws Throwable  {
        DBCheckConstraint arg0 = new DBCheckConstraint("db ", true, "db ", "db ");
        String constraintName = SQLUtil.constraintName(arg0);
        assertEquals("CONSTRAINT \"db \" ", constraintName);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testConstraintNameReturningEmptyString() throws Throwable  {
        DBCheckConstraint arg0 = new DBCheckConstraint((String) null, true, "eW", "eW");
        String constraintName = SQLUtil.constraintName(arg0);
        assertEquals("", constraintName);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testAppendConstraintNameTaking2Arguments() throws Throwable  {
        DefaultDBTable arg2 = new DefaultDBTable("2-w|P;)Q0>");
        DBCheckConstraint arg0 = new DBCheckConstraint("drop materialized view", false, arg2, "TABLE_CATALOG");
        StringBuilder arg1 = new StringBuilder();
        SQLUtil.appendConstraintName((DBConstraint) arg0, arg1);
        assertEquals("CONSTRAINT \"drop materialized view\" ", arg1.toString());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testOwnerDotComponent0() throws Throwable  {
        DBCatalog arg1 = new DBCatalog();
        DBSchema arg0 = new DBSchema("Illegal column type format: ", arg1);
        String ownerDotComponent = SQLUtil.ownerDotComponent(arg0);
        assertEquals("null.Illegal column type format: ", ownerDotComponent);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testOwnerDotComponent1() throws Throwable  {
        DefaultDBTable arg0 = new DefaultDBTable();
        String ownerDotComponent = SQLUtil.ownerDotComponent(arg0);
        assertEquals("null", ownerDotComponent);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testAddOptionalCondition0() throws Throwable  {
        StringBuilder arg1 = new StringBuilder("EzKlX8)x[13^V2+L9");
        SQLUtil.addOptionalCondition("EzKlX8)x[13^V2+L9", arg1);
        assertEquals("EzKlX8)x[13^V2+L9 or EzKlX8)x[13^V2+L9", arg1.toString());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testAddOptionalCondition1() throws Throwable  {
        StringBuilder arg1 = new StringBuilder();
        SQLUtil.addOptionalCondition(".=E2Wk?Cw-|!LNDA", arg1);
        assertEquals(".=E2Wk?Cw-|!LNDA", arg1.toString());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testAddRequiredCondition0() throws Throwable  {
        String arg0 = "zm@!^bZpW\\uMXO@:LV9";
        StringBuilder arg1 = new StringBuilder("select intotable_catalog");
        SQLUtil.addRequiredCondition(arg0, arg1);
        assertEquals("select intotable_catalog and zm@!^bZpW\\uMXO@:LV9", arg1.toString());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testAddRequiredCondition1() throws Throwable  {
        StringBuilder arg1 = new StringBuilder();
        SQLUtil.addRequiredCondition("9", arg1);
        assertEquals("9", arg1.toString());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testJoinWithNonEmptyArrayAndNonEmptyArray() throws Throwable  {
        String[] arg5 = new String[2];
        String join = SQLUtil.join("inner", "NXLOY", arg5, "derby.module.JavaCompiler", "inner", arg5);
        assertEquals("derby.module.JavaCompiler as inner on NXLOY.null = inner.null and NXLOY.null = inner.null", join);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testJoinWithEmptyArray() throws Throwable  {
        String[] arg5 = new String[0];
        String join = SQLUtil.join((String) null, (String) null, arg5, (String) null, (String) null, arg5);
        assertEquals("null as null on ", join);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testConstraintSpecThrowsNullPointerException() throws Throwable  {
        NameSpec arg1 = NameSpec.ALWAYS;
        // Undeclared exception!
        try { 
          SQLUtil.constraintSpec((DBConstraint) null, arg1);
          fail("Expecting exception: NullPointerException");
        
        } catch(NullPointerException e) {
           //
           // no message in exception (getMessage() returned null)
           //
           verifyException("org.databene.jdbacl.SQLUtil", e);
        }
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testConstraintSpecWithDBConstraintWhereIsNameDeterministicIsFalse() throws Throwable  {
        DefaultDBTable arg4 = new DefaultDBTable();
        String[] arg5 = new String[1];
        DBForeignKeyConstraint arg0 = new DBForeignKeyConstraint("alter tabletable_catalog", false, arg4, arg5, arg4, arg5);
        NameSpec arg1 = NameSpec.ALWAYS;
        String constraintSpec = SQLUtil.constraintSpec(arg0, arg1);
        assertEquals("CONSTRAINT \"alter tabletable_catalog\" FOREIGN KEY () REFERENCES null()", constraintSpec);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testMutatesStructureThrowsTooManyResourcesException() throws Throwable  {
        // Undeclared exception!
        SQLUtil.mutatesStructure("/*");
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testMutatesStructure1() throws Throwable  {
        Boolean mutatesStructure = SQLUtil.mutatesStructure("execute");
        assertFalse(mutatesStructure);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testMutatesDataOrStructureAndMutatesDataOrStructureReturningTrue0() throws Throwable  {
        Boolean mutatesDataOrStructure = SQLUtil.mutatesDataOrStructure("select into");
        assertNotNull(mutatesDataOrStructure);
        assertTrue(mutatesDataOrStructure);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testMutatesDataOrStructureAndMutatesDataOrStructureReturningFalse0() throws Throwable  {
        Boolean mutatesDataOrStructure = SQLUtil.mutatesDataOrStructure("select intotable_catalog");
        assertFalse(mutatesDataOrStructure);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testMutatesDataOrStructureReturningNull() throws Throwable  {
        Boolean mutatesDataOrStructure = SQLUtil.mutatesDataOrStructure("l~\"ocavhost");
        assertNull(mutatesDataOrStructure);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testMutatesDataOrStructureAndMutatesDataOrStructureReturningFalse1() throws Throwable  {
        Boolean mutatesDataOrStructure = SQLUtil.mutatesDataOrStructure("alter session");
        assertNotNull(mutatesDataOrStructure);
        assertFalse(mutatesDataOrStructure);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testMutatesDataOrStructureAndMutatesDataOrStructureReturningTrue1() throws Throwable  {
        Boolean mutatesDataOrStructure = SQLUtil.mutatesDataOrStructure("alter index");
        assertTrue(mutatesDataOrStructure);
        assertNotNull(mutatesDataOrStructure);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testRenderWhereClauseThrowsArrayIndexOutOfBoundsException() throws Throwable  {
        String[] arg0 = new String[4];
        Object[] arg1 = new Object[2];
        arg1[0] = (Object) 'p';
        // Undeclared exception!
        try { 
          SQLUtil.renderWhereClause(arg0, arg1);
          fail("Expecting exception: ArrayIndexOutOfBoundsException");
        
        } catch(ArrayIndexOutOfBoundsException e) {
           //
           // 2
           //
           verifyException("org.databene.jdbacl.SQLUtil", e);
        }
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testRenderWhereClauseReturningNonEmptyString() throws Throwable  {
        String[] arg1 = new String[4];
        String renderWhereClause = SQLUtil.renderWhereClause(arg1, arg1);
        assertEquals("null = null AND null = null AND null = null AND null = null", renderWhereClause);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void test1() throws Throwable  {
        DefaultDBTable arg1 = new DefaultDBTable();
        DBDataType arg2 = DBDataType.getInstance((-1994566884), "DBa(aB#7rb&Mmw");
        Integer arg3 = RawTransaction.COMMIT;
        DefaultDBColumn defaultDBColumn = new DefaultDBColumn("DBa(aB#7rb&Mmw", arg1, arg2, arg3);
        String string = defaultDBColumn.toString();
        assertEquals("DBa(aB#7rb&Mmw : DBA(AB#7RB&MMW(0)", string);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void test2() throws Throwable  {
        Integer arg3 = RawTransaction.COMMIT;
        DefaultDBTable arg1 = new DefaultDBTable("localhost", (DBSchema) null);
        DBDataType arg2 = DBDataType.getInstance(907, "NCLOB");
        DefaultDBColumn defaultDBColumn = new DefaultDBColumn("NCLOB", arg1, arg2, arg3);
        String string = defaultDBColumn.toString();
        assertEquals("NCLOB : NCLOB", string);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testRenderColumn() throws Throwable  {
        DefaultDBTable arg1 = new DefaultDBTable();
        DBDataType arg2 = DBDataType.getInstance((-594), "org.apache.derby.diag.SpaceTable");
        Integer arg4 = RawTransaction.ABORT;
        DefaultDBColumn arg0 = new DefaultDBColumn("org.apache.derby.diag.SpaceTable", arg1, arg2, arg4, arg4);
        arg0.setNullable(false);
        String renderColumn = SQLUtil.renderColumn(arg0);
        assertEquals("org.apache.derby.diag.SpaceTable ORG.APACHE.DERBY.DIAG.SPACETABLE(1,1) NOT NULL", renderColumn);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testRenderColumnNamesTakingDBColumnArray() throws Throwable  {
        DefaultDBTable arg1 = new DefaultDBTable();
        DefaultDBColumn defaultDBColumn = new DefaultDBColumn(":!|fhS}", arg1, 1612, ":!|fhS}");
        DBColumn[] arg0 = new DBColumn[2];
        arg0[0] = (DBColumn) defaultDBColumn;
        arg0[1] = (DBColumn) defaultDBColumn;
        String renderColumnNames = SQLUtil.renderColumnNames(arg0);
        assertEquals(":!|fhS}, :!|fhS}", renderColumnNames);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testRenderCreateTable0() throws Throwable  {
        DefaultDBTable arg0 = new DefaultDBTable("2-w|P;)Q0>");
        DBCheckConstraint dBCheckConstraint = new DBCheckConstraint("drop materialized view", false, arg0, "TABLE_CATALOG");
        MockPrintWriter arg3 = new MockPrintWriter("yC!sf2Kn03-R2M");
        NameSpec arg2 = NameSpec.NEVER;
        SQLUtil.renderCreateTable(arg0, false, arg2, arg3);
        assertEquals("table", arg0.getObjectType());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testRenderCreateTable1() throws Throwable  {
        MockPrintWriter arg3 = new MockPrintWriter("ALTER TABLE ");
        DefaultDBTable arg0 = new DefaultDBTable(")bQ<:L");
        DBUniqueConstraint dBUniqueConstraint = new DBUniqueConstraint(arg0, ")bQ<:L", false, (String[]) null);
        NameSpec arg2 = NameSpec.IF_REPRODUCIBLE;
        SQLUtil.renderCreateTable(arg0, false, arg2, arg3);
        assertEquals("table", arg0.getObjectType());
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testParseColumnTypeAndSizeThrowsNumberFormatException0() throws Throwable  {
        // Undeclared exception!
        try { 
          SQLUtil.parseColumnTypeAndSize("(execx()j, (cs-'0DrmeGHZ':/)");
          fail("Expecting exception: NumberFormatException");
        
        } catch(NumberFormatException e) {
           //
           // For input string: \"execx(\"
           //
           verifyException("java.lang.NumberFormatException", e);
        }
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testParseColumnTypeAndSizeThrowsRuntimeException() throws Throwable  {
        // Undeclared exception!
        try { 
          SQLUtil.parseColumnTypeAndSize("update{czvp8(1n]1$71{.&kr");
          fail("Expecting exception: RuntimeException");
        
        } catch(RuntimeException e) {
           //
           // Illegal column type format: update{czvp8(1n]1$71{.&kr
           //
           verifyException("org.databene.jdbacl.SQLUtil", e);
        }
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testParseColumnTypeAndSizeThrowsNumberFormatException1() throws Throwable  {
        // Undeclared exception!
        try { 
          SQLUtil.parseColumnTypeAndSize("(, (cs-'0DrmeGHZ':/)");
          fail("Expecting exception: NumberFormatException");
        
        } catch(NumberFormatException e) {
           //
           // For input string: \"\"
           //
           verifyException("java.lang.NumberFormatException", e);
        }
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testConstraintSpecWithDBConstraintWhereIsNameDeterministicIsTrue() throws Throwable  {
        DBCheckConstraint arg0 = new DBCheckConstraint("X", true, "X", "X");
        NameSpec arg1 = NameSpec.IF_REPRODUCIBLE;
        String constraintSpec = SQLUtil.constraintSpec(arg0, arg1);
        assertEquals("CONSTRAINT X CHECK X", constraintSpec);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testRenderColumnTypeWithSize() throws Throwable  {
        DefaultDBColumn arg0 = new DefaultDBColumn("Illegal column type format: ", (DBTable) null, (-231), "Illegal column type format: ");
        String renderColumnTypeWithSize = SQLUtil.renderColumnTypeWithSize((DBColumn) arg0);
        assertEquals("ILLEGAL COLUMN TYPE FORMAT: ", renderColumnTypeWithSize);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testInnerJoin() throws Throwable  {
        String[] arg4 = new String[1];
        String innerJoin = SQLUtil.innerJoin("NXLcY", arg4, "NXLcY", "NXLcY join NXLcY as NXLcY on NXLcY.null = NXLcY.null", arg4);
        assertEquals("NXLcY as NXLcY join NXLcY as NXLcY on NXLcY.null = NXLcY.null on NXLcY.null = NXLcY join NXLcY as NXLcY on NXLcY.null = NXLcY.null.null", innerJoin);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testSubstituteMarkersReturningNonEmptyString() throws Throwable  {
        String substituteMarkers = SQLUtil.substituteMarkers("'oSQRXckAL>$CU", "drop tablereera3>0zq[", "[w_\"8.vJ9");
        assertEquals("'oSQRXckAL>$CU", substituteMarkers);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testLeftJoin() throws Throwable  {
        String[] arg4 = new String[0];
        String leftJoin = SQLUtil.leftJoin("//", arg4, "//", "//", arg4);
        assertEquals("left join // as // on ", leftJoin);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testRenderQuery() throws Throwable  {
        DefaultDBTable arg0 = new DefaultDBTable();
        String[] arg2 = new String[0];
        String renderQuery = SQLUtil.renderQuery(arg0, arg2, arg2);
        assertEquals("SELECT * FROM null WHERE ", renderQuery);
    }
  
    @Test
    @Timeout(value = 4000 , unit = TimeUnit.MILLISECONDS)
    public void testCreatesSQLUtil() throws Throwable  {
        SQLUtil sQLUtil = new SQLUtil();
    }
  }
  