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.List ; 29 30 import org.easymock.EasyMock; 31 import org.easymock.IMocksControl; 32 import org.testng.annotations.AfterMethod; 33 import org.testng.annotations.Test; 34 35 39 @Test 40 public class TestUniqueConstraint 41 { 42 private IMocksControl control = EasyMock.createControl(); 43 private Connection connection = this.control.createMock(Connection .class); 44 private DatabaseMetaData metaData = this.control.createMock(DatabaseMetaData .class); 45 private ResultSet resultSet = this.control.createMock(ResultSet .class); 46 47 @AfterMethod 48 public void reset() 49 { 50 this.control.reset(); 51 } 52 53 56 public void testCollect() 57 { 58 try 59 { 60 EasyMock.expect(this.connection.getMetaData()).andReturn(this.metaData); 61 62 EasyMock.expect(this.metaData.getIndexInfo(null, "schema", "table", true, false)).andReturn(this.resultSet); 63 64 EasyMock.expect(this.resultSet.next()).andReturn(true); 65 66 EasyMock.expect(this.resultSet.getString("INDEX_NAME")).andReturn("pk"); 67 68 EasyMock.expect(this.resultSet.next()).andReturn(true); 69 70 EasyMock.expect(this.resultSet.getString("INDEX_NAME")).andReturn("idx"); 71 72 EasyMock.expect(this.resultSet.getString("COLUMN_NAME")).andReturn("col1"); 73 74 EasyMock.expect(this.resultSet.next()).andReturn(true); 75 76 EasyMock.expect(this.resultSet.getString("INDEX_NAME")).andReturn("idx"); 77 78 EasyMock.expect(this.resultSet.getString("COLUMN_NAME")).andReturn("col2"); 79 80 EasyMock.expect(this.resultSet.next()).andReturn(false); 81 82 this.resultSet.close(); 83 84 this.control.replay(); 85 86 Collection <UniqueConstraint> collection = UniqueConstraint.collect(this.connection, "schema", "table", "pk"); 87 88 this.control.verify(); 89 90 assert collection != null; 91 assert collection.size() == 1 : collection.size(); 92 93 UniqueConstraint constraint = collection.iterator().next(); 94 95 assert constraint.getName().equals("idx") : constraint.getName(); 96 assert constraint.getSchema().equals("schema") : constraint.getSchema(); 97 assert constraint.getTable().equals("table") : constraint.getTable(); 98 99 List <String > columnList = constraint.getColumnList(); 100 101 assert columnList != null; 102 assert columnList.size() == 2 : columnList.size(); 103 assert columnList.get(0).equals("col1"); 104 assert columnList.get(1).equals("col2"); 105 } 106 catch (SQLException e) 107 { 108 assert false : e; 109 } 110 } 111 112 115 public void testCollectNoSchema() 116 { 117 try 118 { 119 EasyMock.expect(this.connection.getMetaData()).andReturn(this.metaData); 120 121 EasyMock.expect(this.metaData.getIndexInfo(null, null, "table", true, false)).andReturn(this.resultSet); 122 123 EasyMock.expect(this.resultSet.next()).andReturn(true); 124 125 EasyMock.expect(this.resultSet.getString("INDEX_NAME")).andReturn("pk"); 126 127 EasyMock.expect(this.resultSet.next()).andReturn(true); 128 129 EasyMock.expect(this.resultSet.getString("INDEX_NAME")).andReturn("idx"); 130 131 EasyMock.expect(this.resultSet.getString("COLUMN_NAME")).andReturn("col1"); 132 133 EasyMock.expect(this.resultSet.next()).andReturn(true); 134 135 EasyMock.expect(this.resultSet.getString("INDEX_NAME")).andReturn("idx"); 136 137 EasyMock.expect(this.resultSet.getString("COLUMN_NAME")).andReturn("col2"); 138 139 EasyMock.expect(this.resultSet.next()).andReturn(false); 140 141 this.resultSet.close(); 142 143 this.control.replay(); 144 145 Collection <UniqueConstraint> collection = UniqueConstraint.collect(this.connection, null, "table", "pk"); 146 147 this.control.verify(); 148 149 assert collection != null; 150 assert collection.size() == 1 : collection.size(); 151 152 UniqueConstraint constraint = collection.iterator().next(); 153 154 assert constraint.getName().equals("idx") : constraint.getName(); 155 assert constraint.getSchema() == null : constraint.getSchema(); 156 assert constraint.getTable().equals("table") : constraint.getTable(); 157 158 List <String > columnList = constraint.getColumnList(); 159 160 assert columnList != null; 161 assert columnList.size() == 2 : columnList.size(); 162 assert columnList.get(0).equals("col1"); 163 assert columnList.get(1).equals("col2"); 164 } 165 catch (SQLException e) 166 { 167 assert false : e; 168 } 169 } 170 171 174 public void testHashCode() 175 { 176 UniqueConstraint key = new UniqueConstraint("test", null, null); 177 178 assert "test".hashCode() == key.hashCode(); 179 } 180 181 184 public void testEqualsObject() 185 { 186 UniqueConstraint key1 = new UniqueConstraint("test", null, null); 187 UniqueConstraint key2 = new UniqueConstraint("test", "", ""); 188 UniqueConstraint key3 = new UniqueConstraint("testing", "", ""); 189 190 assert key1.equals(key2); 191 assert !key1.equals(key3); 192 assert !key2.equals(key3); 193 } 194 } 195 | Popular Tags |