1 |
|
package liquibase.statementexecute; |
2 |
|
|
3 |
|
import liquibase.database.*; |
4 |
|
import liquibase.database.core.*; |
5 |
|
import liquibase.database.typeconversion.TypeConverterFactory; |
6 |
|
import liquibase.test.DatabaseTestContext; |
7 |
|
import liquibase.statement.SqlStatement; |
8 |
|
import liquibase.statement.core.CreateTableStatement; |
9 |
|
import liquibase.statement.NotNullConstraint; |
10 |
|
import liquibase.statement.core.AddUniqueConstraintStatement; |
11 |
|
|
12 |
|
import java.util.List; |
13 |
|
import java.util.ArrayList; |
14 |
|
|
15 |
|
import org.junit.Test; |
16 |
|
|
|
|
| 0% |
Uncovered Elements: 62 (62) |
Complexity: 7 |
Complexity Density: 0.13 |
|
17 |
|
public class AddUniqueConstraintExecutorTest extends AbstractExecuteTest { |
18 |
|
|
19 |
|
protected static final String TABLE_NAME = "AddUQTest"; |
20 |
|
protected static final String COLUMN_NAME = "colToMakeUQ"; |
21 |
|
protected static final String CONSTRAINT_NAME = "UQ_TEST"; |
22 |
|
protected static final String TABLESPACE_NAME = "LB_TABLESPACE"; |
23 |
|
|
|
|
| 0% |
Uncovered Elements: 11 (11) |
Complexity: 2 |
Complexity Density: 0.22 |
|
24 |
0
|
@Override... |
25 |
|
protected List<? extends SqlStatement> setupStatements(Database database) { |
26 |
0
|
List<CreateTableStatement> statements = new ArrayList<CreateTableStatement>(); |
27 |
0
|
CreateTableStatement table = new CreateTableStatement(null, TABLE_NAME); |
28 |
0
|
table |
29 |
|
.addColumn("id", TypeConverterFactory.getInstance().findTypeConverter(database).getDataType("int", false), null, new NotNullConstraint()) |
30 |
|
.addColumn(COLUMN_NAME, TypeConverterFactory.getInstance().findTypeConverter(database).getDataType("int", false), null, new NotNullConstraint()); |
31 |
0
|
statements.add(table); |
32 |
|
|
33 |
0
|
if (database.supportsSchemas()) { |
34 |
0
|
table = new CreateTableStatement(DatabaseTestContext.ALT_SCHEMA, TABLE_NAME); |
35 |
0
|
table |
36 |
|
.addColumn("id", TypeConverterFactory.getInstance().findTypeConverter(database).getDataType("int", false), null, new NotNullConstraint()) |
37 |
|
.addColumn(COLUMN_NAME, TypeConverterFactory.getInstance().findTypeConverter(database).getDataType("int", false), null, new NotNullConstraint()); |
38 |
0
|
statements.add(table); |
39 |
|
} |
40 |
0
|
return statements; |
41 |
|
} |
42 |
|
|
43 |
|
|
44 |
|
|
45 |
|
|
46 |
|
|
47 |
|
|
48 |
|
|
49 |
|
|
50 |
|
|
51 |
|
|
52 |
|
|
53 |
|
|
54 |
|
|
55 |
|
|
56 |
|
|
57 |
|
|
58 |
|
|
59 |
|
|
60 |
|
|
61 |
|
|
62 |
|
|
63 |
|
|
64 |
|
|
65 |
|
|
66 |
|
|
67 |
|
|
68 |
|
|
69 |
|
|
70 |
|
|
71 |
|
|
72 |
|
|
73 |
|
|
74 |
|
|
75 |
|
|
76 |
|
|
77 |
|
|
78 |
|
|
79 |
|
|
80 |
|
|
81 |
|
|
82 |
|
|
83 |
|
|
84 |
|
|
85 |
|
|
86 |
|
|
87 |
|
|
88 |
|
|
89 |
|
|
90 |
|
|
91 |
|
|
92 |
|
|
|
|
| 0% |
Uncovered Elements: 10 (10) |
Complexity: 1 |
Complexity Density: 0.1 |
4
-
|
|
93 |
0
|
@SuppressWarnings("unchecked")... |
94 |
|
@Test |
95 |
|
public void execute_noSchema() throws Exception { |
96 |
0
|
this.statementUnderTest = new AddUniqueConstraintStatement(null, TABLE_NAME, COLUMN_NAME, CONSTRAINT_NAME); |
97 |
0
|
assertCorrect("alter table [adduqtest] add constraint [uq_test] unique ([coltomakeuq])", SybaseDatabase.class); |
98 |
0
|
assertCorrect("alter table [dbo].[adduqtest] add constraint [uq_test] unique ([coltomakeuq])", MSSQLDatabase.class); |
99 |
0
|
assertCorrect("alter table [adduqtest] add constraint [uq_test] unique ([coltomakeuq])", SybaseASADatabase.class); |
100 |
0
|
assertCorrect("alter table `adduqtest` add constraint `uq_test` unique (`coltomakeuq`)", MySQLDatabase.class); |
101 |
0
|
assertCorrect("alter table adduqtest add constraint unique (coltomakeuq) constraint uq_test", InformixDatabase.class); |
102 |
0
|
assertCorrect("alter table adduqtest add constraint uq_test unique (coltomakeuq)", OracleDatabase.class); |
103 |
0
|
assertCorrect("alter table \"adduqtest\" add constraint uq_test unique (\"coltomakeuq\")", PostgresDatabase.class); |
104 |
0
|
assertCorrect("alter table adduqtest add constraint uq_test unique (coltomakeuq)", DerbyDatabase.class); |
105 |
0
|
assertCorrect("alter table [adduqtest] add constraint [uq_test] unique ([coltomakeuq])"); |
106 |
|
} |
107 |
|
|
|
|
| 0% |
Uncovered Elements: 9 (9) |
Complexity: 1 |
Complexity Density: 0.11 |
4
-
|
|
108 |
0
|
@SuppressWarnings("unchecked")... |
109 |
|
@Test |
110 |
|
public void execute_noConstraintName() throws Exception { |
111 |
0
|
this.statementUnderTest = new AddUniqueConstraintStatement(null, TABLE_NAME, COLUMN_NAME, null); |
112 |
0
|
assertCorrect("alter table `adduqtest` add unique (`coltomakeuq`)", MySQLDatabase.class); |
113 |
0
|
assertCorrect("alter table adduqtest add constraint unique (coltomakeuq)", InformixDatabase.class); |
114 |
0
|
assertCorrect("alter table adduqtest add unique (coltomakeuq)", OracleDatabase.class); |
115 |
0
|
assertCorrect("alter table \"adduqtest\" add unique (\"coltomakeuq\")", PostgresDatabase.class); |
116 |
0
|
assertCorrect("alter table adduqtest add unique (coltomakeuq)", DerbyDatabase.class); |
117 |
0
|
assertCorrect("alter table [adduqtest] add unique ([coltomakeuq])", SybaseASADatabase.class, SybaseDatabase.class); |
118 |
0
|
assertCorrect("alter table [dbo].[adduqtest] add unique ([coltomakeuq])", MSSQLDatabase.class); |
119 |
|
|
120 |
0
|
assertCorrect("alter table [adduqtest] add unique ([coltomakeuq])"); |
121 |
|
} |
122 |
|
|
|
|
| 0% |
Uncovered Elements: 8 (8) |
Complexity: 1 |
Complexity Density: 0.12 |
4
-
|
|
123 |
0
|
@SuppressWarnings("unchecked")... |
124 |
|
@Test |
125 |
|
public void execute_withSchema() throws Exception { |
126 |
0
|
statementUnderTest = new AddUniqueConstraintStatement(DatabaseTestContext.ALT_SCHEMA, TABLE_NAME, COLUMN_NAME, CONSTRAINT_NAME); |
127 |
|
|
128 |
|
|
129 |
|
|
130 |
0
|
assertCorrect("alter table liquibaseb.adduqtest add constraint unique (coltomakeuq) constraint uq_test", InformixDatabase.class); |
131 |
0
|
assertCorrect("alter table liquibaseb.adduqtest add constraint uq_test unique (coltomakeuq)", OracleDatabase.class); |
132 |
0
|
assertCorrect("alter table liquibaseb.\"adduqtest\" add constraint uq_test unique (\"coltomakeuq\")", PostgresDatabase.class); |
133 |
0
|
assertCorrect("alter table liquibaseb.adduqtest add constraint uq_test unique (coltomakeuq)", DerbyDatabase.class); |
134 |
0
|
assertCorrect("alter table [liquibaseb].[adduqtest] add constraint [uq_test] unique ([coltomakeuq])", SybaseASADatabase.class, SybaseDatabase.class, MSSQLDatabase.class); |
135 |
0
|
assertCorrect("alter table [adduqtest] add constraint [uq_test] unique ([coltomakeuq])", FirebirdDatabase.class); |
136 |
|
|
137 |
0
|
assertCorrectOnRest("alter table [liquibaseb].[adduqtest] add constraint [uq_test] unique ([coltomakeuq])"); |
138 |
|
|
139 |
|
} |
140 |
|
|
|
|
| 0% |
Uncovered Elements: 8 (8) |
Complexity: 1 |
Complexity Density: 0.12 |
4
-
|
|
141 |
0
|
@SuppressWarnings("unchecked")... |
142 |
|
@Test |
143 |
|
public void execute_withTablespace() throws Exception { |
144 |
0
|
statementUnderTest = new AddUniqueConstraintStatement(null, TABLE_NAME, COLUMN_NAME, CONSTRAINT_NAME).setTablespace(TABLESPACE_NAME); |
145 |
0
|
assertCorrect("alter table [adduqtest] add constraint [uq_test] unique ([coltomakeuq])", SybaseASADatabase.class, SybaseDatabase.class); |
146 |
0
|
assertCorrect("alter table [dbo].[adduqtest] add constraint [uq_test] unique ([coltomakeuq])", MSSQLDatabase.class); |
147 |
0
|
assertCorrect("alter table adduqtest add constraint unique (coltomakeuq) constraint uq_test", InformixDatabase.class); |
148 |
0
|
assertCorrect("alter table \"adduqtest\" add constraint uq_test unique (\"coltomakeuq\") USING INDEX TABLESPACE " + TABLESPACE_NAME, PostgresDatabase.class); |
149 |
0
|
assertCorrect("alter table `adduqtest` add constraint `uq_test` unique (`coltomakeuq`)", MySQLDatabase.class); |
150 |
0
|
assertCorrect("alter table adduqtest add constraint uq_test unique (coltomakeuq)", DerbyDatabase.class, HsqlDatabase.class, DB2Database.class, H2Database.class, CacheDatabase.class, FirebirdDatabase.class, MaxDBDatabase.class); |
151 |
0
|
assertCorrectOnRest("alter table [adduqtest] add constraint [uq_test] unique ([coltomakeuq]) USING INDEX TABLESPACE " + TABLESPACE_NAME); |
152 |
|
} |
153 |
|
|
|
|
| 0% |
Uncovered Elements: 10 (10) |
Complexity: 1 |
Complexity Density: 0.1 |
4
-
|
|
154 |
0
|
@SuppressWarnings("unchecked")... |
155 |
|
@Test |
156 |
|
public void execute_withDefferedAndDisabled() throws Exception { |
157 |
0
|
statementUnderTest = new AddUniqueConstraintStatement(null, TABLE_NAME, COLUMN_NAME, CONSTRAINT_NAME).setDeferrable(true).setInitiallyDeferred(true).setDisabled(true); |
158 |
0
|
assertCorrect("alter table [adduqtest] add constraint [uq_test] unique ([coltomakeuq])", SybaseDatabase.class); |
159 |
0
|
assertCorrect("alter table [dbo].[adduqtest] add constraint [uq_test] unique ([coltomakeuq])", MSSQLDatabase.class); |
160 |
0
|
assertCorrect("alter table [adduqtest] add constraint [uq_test] unique ([coltomakeuq])", SybaseASADatabase.class); |
161 |
0
|
assertCorrect("alter table `adduqtest` add constraint `uq_test` unique (`coltomakeuq`)", MySQLDatabase.class); |
162 |
0
|
assertCorrect("alter table adduqtest add constraint unique (coltomakeuq) constraint uq_test", InformixDatabase.class); |
163 |
0
|
assertCorrect("alter table adduqtest add constraint uq_test unique (coltomakeuq) DEFERRABLE INITIALLY DEFERRED DISABLE", OracleDatabase.class); |
164 |
0
|
assertCorrect("alter table \"adduqtest\" add constraint uq_test unique (\"coltomakeuq\")", PostgresDatabase.class); |
165 |
0
|
assertCorrect("alter table adduqtest add constraint uq_test unique (coltomakeuq)", DerbyDatabase.class); |
166 |
0
|
assertCorrect("alter table [adduqtest] add constraint [uq_test] unique ([coltomakeuq])"); |
167 |
|
} |
168 |
|
} |