| 1 21 package net.sf.hajdbc; 22 23 import java.sql.Connection ; 24 import java.sql.DatabaseMetaData ; 25 import java.sql.ResultSet ; 26 import java.sql.SQLException ; 27 import java.util.Collection ; 28 import java.util.Collections ; 29 import java.util.Map ; 30 31 import org.easymock.EasyMock; 32 import org.easymock.IMocksControl; 33 import org.testng.annotations.AfterMethod; 34 import org.testng.annotations.Test; 35 36 40 @Test 41 public class TestForeignKeyConstraint 42 { 43 private IMocksControl control = EasyMock.createControl(); 44 private Connection connection = this.control.createMock(Connection .class); 45 private DatabaseMetaData metaData = this.control.createMock(DatabaseMetaData .class); 46 private ResultSet resultSet = this.control.createMock(ResultSet .class); 47 48 @AfterMethod 49 public void reset() 50 { 51 this.control.reset(); 52 } 53 54 57 public void testCollect() 58 { 59 try 60 { 61 EasyMock.expect(this.connection.getMetaData()).andReturn(this.metaData); 62 63 EasyMock.expect(this.metaData.getImportedKeys(null, "fk_schema", "fk_table")).andReturn(this.resultSet); 64 65 EasyMock.expect(this.resultSet.next()).andReturn(true); 66 67 EasyMock.expect(this.resultSet.getString("FK_NAME")).andReturn("fk"); 68 69 EasyMock.expect(this.resultSet.getString("FKCOLUMN_NAME")).andReturn("fk_column1"); 70 71 EasyMock.expect(this.resultSet.getString("PKTABLE_SCHEM")).andReturn("pk_schema"); 72 73 EasyMock.expect(this.resultSet.getString("PKTABLE_NAME")).andReturn("pk_table"); 74 75 EasyMock.expect(this.resultSet.getString("PKCOLUMN_NAME")).andReturn("pk_column1"); 76 77 EasyMock.expect(this.resultSet.next()).andReturn(true); 78 79 EasyMock.expect(this.resultSet.getString("FK_NAME")).andReturn("fk"); 80 81 EasyMock.expect(this.resultSet.getString("FKCOLUMN_NAME")).andReturn("fk_column2"); 82 83 EasyMock.expect(this.resultSet.getString("PKTABLE_SCHEM")).andReturn("pk_schema"); 84 85 EasyMock.expect(this.resultSet.getString("PKTABLE_NAME")).andReturn("pk_table"); 86 87 EasyMock.expect(this.resultSet.getString("PKCOLUMN_NAME")).andReturn("pk_column2"); 88 89 EasyMock.expect(this.resultSet.next()).andReturn(false); 90 91 this.resultSet.close(); 92 93 this.control.replay(); 94 95 Collection <ForeignKeyConstraint> collection = ForeignKeyConstraint.collect(this.connection, Collections.singletonMap("fk_schema", Collections.singletonList("fk_table"))); 96 97 this.control.verify(); 98 99 assert collection != null; 100 assert collection.size() == 1 : collection.size(); 101 102 ForeignKeyConstraint constraint = collection.iterator().next(); 103 104 assert constraint.getName().equals("fk") : constraint.getName(); 105 assert constraint.getSchema().equals("fk_schema") : constraint.getSchema(); 106 assert constraint.getTable().equals("fk_table") : constraint.getTable(); 107 assert constraint.getColumnList().size() == 2 : constraint.getColumnList().size(); 108 assert constraint.getColumnList().get(0).equals("fk_column1") : constraint.getColumnList().get(0); 109 assert constraint.getColumnList().get(1).equals("fk_column2") : constraint.getColumnList().get(1); 110 assert constraint.getForeignSchema().equals("pk_schema") : constraint.getForeignSchema(); 111 assert constraint.getForeignTable().equals("pk_table") : constraint.getForeignTable(); 112 assert constraint.getForeignColumnList().size() == 2 : constraint.getForeignColumnList().size(); 113 assert constraint.getForeignColumnList().get(0).equals("pk_column1") : constraint.getForeignColumnList().get(0); 114 assert constraint.getForeignColumnList().get(1).equals("pk_column2") : constraint.getForeignColumnList().get(1); 115 } 116 catch (SQLException e) 117 { 118 assert false : e; 119 } 120 } 121 122 125 public void testCollectNoSchema() 126 { 127 try 128 { 129 EasyMock.expect(this.connection.getMetaData()).andReturn(this.metaData); 130 131 EasyMock.expect(this.metaData.getImportedKeys(null, null, "fk_table")).andReturn(this.resultSet); 132 133 EasyMock.expect(this.resultSet.next()).andReturn(true); 134 135 EasyMock.expect(this.resultSet.getString("FK_NAME")).andReturn("fk"); 136 137 EasyMock.expect(this.resultSet.getString("FKCOLUMN_NAME")).andReturn("fk_column1"); 138 139 EasyMock.expect(this.resultSet.getString("PKTABLE_SCHEM")).andReturn(null); 140 141 EasyMock.expect(this.resultSet.getString("PKTABLE_NAME")).andReturn("pk_table"); 142 143 EasyMock.expect(this.resultSet.getString("PKCOLUMN_NAME")).andReturn("pk_column1"); 144 145 EasyMock.expect(this.resultSet.next()).andReturn(true); 146 147 EasyMock.expect(this.resultSet.getString("FK_NAME")).andReturn("fk"); 148 149 EasyMock.expect(this.resultSet.getString("FKCOLUMN_NAME")).andReturn("fk_column2"); 150 151 EasyMock.expect(this.resultSet.getString("PKTABLE_SCHEM")).andReturn(null); 152 153 EasyMock.expect(this.resultSet.getString("PKTABLE_NAME")).andReturn("pk_table"); 154 155 EasyMock.expect(this.resultSet.getString("PKCOLUMN_NAME")).andReturn("pk_column2"); 156 157 EasyMock.expect(this.resultSet.next()).andReturn(false); 158 159 this.resultSet.close(); 160 161 this.control.replay(); 162 163 Collection <ForeignKeyConstraint> collection = ForeignKeyConstraint.collect(this.connection, Collections.singletonMap((String ) null, Collections.singletonList("fk_table"))); 164 165 this.control.verify(); 166 167 assert collection != null; 168 assert collection.size() == 1 : collection.size(); 169 170 ForeignKeyConstraint constraint = collection.iterator().next(); 171 172 assert constraint.getName().equals("fk") : constraint.getName(); 173 assert constraint.getSchema() == null : constraint.getSchema(); 174 assert constraint.getTable().equals("fk_table") : constraint.getTable(); 175 assert constraint.getColumnList().size() == 2 : constraint.getColumnList().size(); 176 assert constraint.getColumnList().get(0).equals("fk_column1") : constraint.getColumnList().get(0); 177 assert constraint.getColumnList().get(1).equals("fk_column2") : constraint.getColumnList().get(1); 178 assert constraint.getForeignSchema() == null : constraint.getForeignSchema(); 179 assert constraint.getForeignTable().equals("pk_table") : constraint.getForeignTable(); 180 assert constraint.getForeignColumnList().size() == 2 : constraint.getForeignColumnList().size(); 181 assert constraint.getForeignColumnList().get(0).equals("pk_column1") : constraint.getForeignColumnList().get(0); 182 assert constraint.getForeignColumnList().get(1).equals("pk_column2") : constraint.getForeignColumnList().get(1); 183 } 184 catch (SQLException e) 185 { 186 assert false : e; 187 } 188 } 189 190 193 public void testHashCode() 194 { 195 ForeignKeyConstraint key = new ForeignKeyConstraint("test", null, null); 196 197 assert "test".hashCode() == key.hashCode(); 198 } 199 200 203 public void testEqualsObject() 204 { 205 ForeignKeyConstraint key1 = new ForeignKeyConstraint("test", "", ""); 206 ForeignKeyConstraint key2 = new ForeignKeyConstraint("test", null, null); 207 ForeignKeyConstraint key3 = new ForeignKeyConstraint("testing", null, null); 208 209 assert key1.equals(key2); 210 assert !key1.equals(key3); 211 assert !key2.equals(key3); 212 } 213 } 214 | Popular Tags |