KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > net > sf > hajdbc > dialect > TestMySQLDialect


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.dialect;
22
23 import java.sql.DatabaseMetaData JavaDoc;
24 import java.sql.SQLException JavaDoc;
25
26 import net.sf.hajdbc.Dialect;
27 import net.sf.hajdbc.ForeignKeyConstraint;
28 import net.sf.hajdbc.UniqueConstraint;
29
30 import org.easymock.EasyMock;
31 import org.testng.annotations.Test;
32
33 /**
34  * @author Paul Ferraro
35  *
36  */

37 @Test
38 public class TestMySQLDialect extends TestDefaultDialect
39 {
40     /**
41      * @see net.sf.hajdbc.dialect.TestDefaultDialect#createDialect()
42      */

43     @Override JavaDoc
44     protected Dialect createDialect()
45     {
46         return new MySQLDialect();
47     }
48
49     /**
50      * Test case for {@link net.sf.hajdbc.Dialect#getCreateForeignKeyConstraintSQL(java.sql.DatabaseMetaData, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String)}
51      */

52     @Override JavaDoc
53     public void testGetCreateForeignKeyConstraintSQL()
54     {
55         ForeignKeyConstraint constraint = new ForeignKeyConstraint("fk_name", "schema", "table");
56         constraint.getColumnList().add("column1");
57         constraint.getColumnList().add("column2");
58         constraint.setForeignSchema("other_schema");
59         constraint.setForeignTable("other_table");
60         constraint.getForeignColumnList().add("other_column1");
61         constraint.getForeignColumnList().add("other_column2");
62         constraint.setUpdateRule(DatabaseMetaData.importedKeyNoAction);
63         constraint.setDeleteRule(DatabaseMetaData.importedKeyNoAction);
64         constraint.setDeferrability(DatabaseMetaData.importedKeyNotDeferrable);
65
66         String JavaDoc quote = "'";
67         
68         try
69         {
70             EasyMock.expect(this.metaData.getIdentifierQuoteString()).andReturn(quote);
71             EasyMock.expect(this.metaData.supportsSchemasInDataManipulation()).andReturn(true);
72             EasyMock.expect(this.metaData.getIdentifierQuoteString()).andReturn(quote).times(4);
73             EasyMock.expect(this.metaData.supportsSchemasInDataManipulation()).andReturn(true);
74             EasyMock.expect(this.metaData.getIdentifierQuoteString()).andReturn(quote).times(4);
75             
76             this.control.replay();
77             
78             String JavaDoc sql = this.dialect.getCreateForeignKeyConstraintSQL(this.metaData, constraint);
79             
80             this.control.verify();
81             
82             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;
83         }
84         catch (SQLException JavaDoc e)
85         {
86             assert false : e;
87         }
88     }
89
90     /**
91      * Test case for {@link net.sf.hajdbc.Dialect#getDropForeignKeyConstraintSQL(java.sql.DatabaseMetaData, java.lang.String, java.lang.String, java.lang.String)}
92      */

93     @Override JavaDoc
94     public void testGetDropForeignKeyConstraintSQL()
95     {
96         ForeignKeyConstraint constraint = new ForeignKeyConstraint("fk_name", "schema", "table");
97         String JavaDoc quote = "'";
98         
99         try
100         {
101             EasyMock.expect(this.metaData.getIdentifierQuoteString()).andReturn(quote);
102             EasyMock.expect(this.metaData.supportsSchemasInDataManipulation()).andReturn(true);
103             EasyMock.expect(this.metaData.getIdentifierQuoteString()).andReturn(quote).times(2);
104             
105             this.control.replay();
106             
107             String JavaDoc sql = this.dialect.getDropForeignKeyConstraintSQL(this.metaData, constraint);
108             
109             this.control.verify();
110             
111             assert sql.equals("ALTER TABLE 'schema'.'table' DROP FOREIGN KEY 'fk_name'") : sql;
112         }
113         catch (SQLException JavaDoc e)
114         {
115             assert false : e;
116         }
117     }
118
119     /**
120      * Test case for {@link net.sf.hajdbc.Dialect#getCreateUniqueConstraintSQL(java.sql.DatabaseMetaData, java.lang.String, java.lang.String, java.lang.String, java.util.List)}
121      */

122     @Override JavaDoc
123     public void testGetCreateUniqueConstraintSQL()
124     {
125         UniqueConstraint constraint = new UniqueConstraint("uk_name", "schema", "table");
126         constraint.getColumnList().add("column1");
127         constraint.getColumnList().add("column2");
128         String JavaDoc quote = "'";
129         
130         try
131         {
132             EasyMock.expect(this.metaData.getIdentifierQuoteString()).andReturn(quote);
133             EasyMock.expect(this.metaData.supportsSchemasInDataManipulation()).andReturn(true);
134             EasyMock.expect(this.metaData.getIdentifierQuoteString()).andReturn(quote).times(4);
135             
136             this.control.replay();
137             
138             String JavaDoc sql = this.dialect.getCreateUniqueConstraintSQL(this.metaData, constraint);
139             
140             this.control.verify();
141             
142             assert sql.equals("ALTER TABLE 'schema'.'table' ADD UNIQUE 'uk_name' ('column1','column2')") : sql;
143         }
144         catch (SQLException JavaDoc e)
145         {
146             assert false : e;
147         }
148     }
149
150     /**
151      * Test case for {@link net.sf.hajdbc.Dialect#getDropUniqueConstraintSQL(java.sql.DatabaseMetaData, java.lang.String, java.lang.String, java.lang.String)}
152      */

153     @Override JavaDoc
154     public void testGetDropUniqueConstraintSQL()
155     {
156         UniqueConstraint constraint = new UniqueConstraint("uk_name", "schema", "table");
157         String JavaDoc quote = "'";
158         
159         try
160         {
161             EasyMock.expect(this.metaData.getIdentifierQuoteString()).andReturn(quote);
162             EasyMock.expect(this.metaData.supportsSchemasInDataManipulation()).andReturn(true);
163             EasyMock.expect(this.metaData.getIdentifierQuoteString()).andReturn(quote).times(2);
164             
165             this.control.replay();
166             
167             String JavaDoc sql = this.dialect.getDropUniqueConstraintSQL(this.metaData, constraint);
168             
169             this.control.verify();
170             
171             assert sql.equals("ALTER TABLE 'schema'.'table' DROP INDEX 'uk_name'") : sql;
172         }
173         catch (SQLException JavaDoc e)
174         {
175             assert false : e;
176         }
177     }
178 }
179
Popular Tags