KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > net > sf > hajdbc > TestUniqueConstraint


1 /*
2  * HA-JDBC: High-Availability JDBC
3  * Copyright (c) 2004-2006 Paul Ferraro
4  *
5  * This library is free software; you can redistribute it and/or modify it
6  * under the terms of the GNU Lesser General Public License as published by the
7  * Free Software Foundation; either version 2.1 of the License, or (at your
8  * option) any later version.
9  *
10  * This library is distributed in the hope that it will be useful, but WITHOUT
11  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
13  * for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public License
16  * along with this library; if not, write to the Free Software Foundation,
17  * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18  *
19  * Contact: ferraro@users.sourceforge.net
20  */

21 package net.sf.hajdbc;
22
23 import java.sql.Connection JavaDoc;
24 import java.sql.DatabaseMetaData JavaDoc;
25 import java.sql.ResultSet JavaDoc;
26 import java.sql.SQLException JavaDoc;
27 import java.util.Collection JavaDoc;
28 import java.util.List JavaDoc;
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 /**
36  * @author Paul Ferraro
37  * @since 1.0
38  */

39 @Test
40 public class TestUniqueConstraint
41 {
42     private IMocksControl control = EasyMock.createControl();
43     private Connection JavaDoc connection = this.control.createMock(Connection JavaDoc.class);
44     private DatabaseMetaData JavaDoc metaData = this.control.createMock(DatabaseMetaData JavaDoc.class);
45     private ResultSet JavaDoc resultSet = this.control.createMock(ResultSet JavaDoc.class);
46     
47     @AfterMethod
48     public void reset()
49     {
50         this.control.reset();
51     }
52     
53     /**
54      * Test method for {@link UniqueConstraint#collect(Connection, String, String, String)}
55      */

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 JavaDoc<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 JavaDoc<String JavaDoc> 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     /**
113      * Test method for {@link UniqueConstraint#collect(Connection, String, String, String)}
114      */

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 JavaDoc<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 JavaDoc<String JavaDoc> 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     /**
172      * Test method for {@link Constraint#hashCode()}
173      */

174     public void testHashCode()
175     {
176         UniqueConstraint key = new UniqueConstraint("test", null, null);
177         
178         assert "test".hashCode() == key.hashCode();
179     }
180
181     /**
182      * Test method for {@link Constraint#equals(Object)}
183      */

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