1 21 package net.sf.hajdbc.dialect; 22 23 import java.sql.DatabaseMetaData ; 24 import java.sql.SQLException ; 25 26 import net.sf.hajdbc.Dialect; 27 import net.sf.hajdbc.ForeignKeyConstraint; 28 29 import org.easymock.EasyMock; 30 import org.testng.annotations.Test; 31 32 36 @Test 37 public class TestHSQLDBDialect extends TestDefaultDialect 38 { 39 @Override 40 protected Dialect createDialect() 41 { 42 return new HSQLDBDialect(); 43 } 44 45 @Override 46 public void testGetSimpleSQL() 47 { 48 String sql = this.dialect.getSimpleSQL(); 49 50 assert sql.equals("CALL NOW()") : sql; 51 } 52 53 56 @Override 57 public void testGetCreateForeignKeyConstraintSQL() 58 { 59 ForeignKeyConstraint constraint = new ForeignKeyConstraint("fk_name", "schema", "table"); 60 constraint.getColumnList().add("column1"); 61 constraint.getColumnList().add("column2"); 62 constraint.setForeignSchema("other_schema"); 63 constraint.setForeignTable("other_table"); 64 constraint.getForeignColumnList().add("other_column1"); 65 constraint.getForeignColumnList().add("other_column2"); 66 constraint.setUpdateRule(DatabaseMetaData.importedKeyNoAction); 67 constraint.setDeleteRule(DatabaseMetaData.importedKeyNoAction); 68 constraint.setDeferrability(DatabaseMetaData.importedKeyNotDeferrable); 69 70 String quote = "'"; 71 72 try 73 { 74 EasyMock.expect(this.metaData.getIdentifierQuoteString()).andReturn(quote); 75 EasyMock.expect(this.metaData.supportsSchemasInDataManipulation()).andReturn(true); 76 EasyMock.expect(this.metaData.getIdentifierQuoteString()).andReturn(quote).times(4); 77 EasyMock.expect(this.metaData.supportsSchemasInDataManipulation()).andReturn(true); 78 EasyMock.expect(this.metaData.getIdentifierQuoteString()).andReturn(quote).times(4); 79 80 this.control.replay(); 81 82 String sql = this.dialect.getCreateForeignKeyConstraintSQL(this.metaData, constraint); 83 84 this.control.verify(); 85 86 assert sql.equals("ALTER TABLE 'schema'.'table' ADD CONSTRAINT 'fk_name' FOREIGN KEY ('column1','column2') REFERENCES 'other_schema'.'other_table' ('other_column1','other_column2') ON DELETE NO ACTION ON UPDATE NO ACTION") : sql; 87 } 88 catch (SQLException e) 89 { 90 assert false : e; 91 } 92 } 93 } 94 | Popular Tags |