Skip to content

Commit b5e4e02

Browse files
philwebbsbrannen
authored andcommitted
Polish ScriptUtilsUnitTests
1 parent 17914fc commit b5e4e02

File tree

1 file changed

+9
-44
lines changed

1 file changed

+9
-44
lines changed

spring-jdbc/src/test/java/org/springframework/jdbc/datasource/init/ScriptUtilsUnitTests.java

Lines changed: 9 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -57,10 +57,7 @@ public void splitSqlScriptDelimitedWithSemicolon() {
5757
String script = rawStatement1 + delim + rawStatement2 + delim + rawStatement3 + delim;
5858
List<String> statements = new ArrayList<>();
5959
splitSqlScript(script, delim, statements);
60-
assertThat(statements.size()).as("wrong number of statements").isEqualTo(3);
61-
assertThat(statements.get(0)).as("statement 1 not split correctly").isEqualTo(cleanedStatement1);
62-
assertThat(statements.get(1)).as("statement 2 not split correctly").isEqualTo(cleanedStatement2);
63-
assertThat(statements.get(2)).as("statement 3 not split correctly").isEqualTo(cleanedStatement3);
60+
assertThat(statements).containsExactly(cleanedStatement1, cleanedStatement2, cleanedStatement3);
6461
}
6562

6663
@Test
@@ -72,10 +69,7 @@ public void splitSqlScriptDelimitedWithNewLine() {
7269
String script = statement1 + delim + statement2 + delim + statement3 + delim;
7370
List<String> statements = new ArrayList<>();
7471
splitSqlScript(script, delim, statements);
75-
assertThat(statements.size()).as("wrong number of statements").isEqualTo(3);
76-
assertThat(statements.get(0)).as("statement 1 not split correctly").isEqualTo(statement1);
77-
assertThat(statements.get(1)).as("statement 2 not split correctly").isEqualTo(statement2);
78-
assertThat(statements.get(2)).as("statement 3 not split correctly").isEqualTo(statement3);
72+
assertThat(statements).containsExactly(statement1, statement2, statement3);
7973
}
8074

8175
@Test
@@ -86,8 +80,7 @@ public void splitSqlScriptDelimitedWithNewLineButDefaultDelimiterSpecified() {
8680
String script = statement1 + delim + statement2 + delim;
8781
List<String> statements = new ArrayList<>();
8882
splitSqlScript(script, DEFAULT_STATEMENT_SEPARATOR, statements);
89-
assertThat(statements.size()).as("wrong number of statements").isEqualTo(1);
90-
assertThat(statements.get(0)).as("script should have been 'stripped' but not actually 'split'").isEqualTo(script.replace('\n', ' '));
83+
assertThat(statements).as("stripped but not split statements").containsExactly(script.replace('\n', ' '));
9184
}
9285

9386
@Test // SPR-13218
@@ -98,23 +91,17 @@ public void splitScriptWithSingleQuotesNestedInsideDoubleQuotes() throws Excepti
9891
String script = statement1 + delim + statement2 + delim;
9992
List<String> statements = new ArrayList<>();
10093
splitSqlScript(script, ';', statements);
101-
assertThat(statements.size()).as("wrong number of statements").isEqualTo(2);
102-
assertThat(statements.get(0)).as("statement 1 not split correctly").isEqualTo(statement1);
103-
assertThat(statements.get(1)).as("statement 2 not split correctly").isEqualTo(statement2);
94+
assertThat(statements).containsExactly(statement1, statement2);
10495
}
10596

10697
@Test // SPR-11560
10798
public void readAndSplitScriptWithMultipleNewlinesAsSeparator() throws Exception {
10899
String script = readScript("db-test-data-multi-newline.sql");
109100
List<String> statements = new ArrayList<>();
110101
splitSqlScript(script, "\n\n", statements);
111-
112102
String statement1 = "insert into T_TEST (NAME) values ('Keith')";
113103
String statement2 = "insert into T_TEST (NAME) values ('Dave')";
114-
115-
assertThat(statements.size()).as("wrong number of statements").isEqualTo(2);
116-
assertThat(statements.get(0)).as("statement 1 not split correctly").isEqualTo(statement1);
117-
assertThat(statements.get(1)).as("statement 2 not split correctly").isEqualTo(statement2);
104+
assertThat(statements).containsExactly(statement1, statement2);
118105
}
119106

120107
@Test
@@ -139,75 +126,53 @@ private void splitScriptContainingComments(String script, String... commentPrefi
139126
List<String> statements = new ArrayList<>();
140127
splitSqlScript(null, script, ";", commentPrefixes, DEFAULT_BLOCK_COMMENT_START_DELIMITER,
141128
DEFAULT_BLOCK_COMMENT_END_DELIMITER, statements);
142-
143129
String statement1 = "insert into customer (id, name) values (1, 'Rod; Johnson'), (2, 'Adrian Collier')";
144130
String statement2 = "insert into orders(id, order_date, customer_id) values (1, '2008-01-02', 2)";
145131
String statement3 = "insert into orders(id, order_date, customer_id) values (1, '2008-01-02', 2)";
146132
// Statement 4 addresses the error described in SPR-9982.
147133
String statement4 = "INSERT INTO persons( person_id , name) VALUES( 1 , 'Name' )";
148-
149-
assertThat(statements.size()).as("wrong number of statements").isEqualTo(4);
150-
assertThat(statements.get(0)).as("statement 1 not split correctly").isEqualTo(statement1);
151-
assertThat(statements.get(1)).as("statement 2 not split correctly").isEqualTo(statement2);
152-
assertThat(statements.get(2)).as("statement 3 not split correctly").isEqualTo(statement3);
153-
assertThat(statements.get(3)).as("statement 4 not split correctly").isEqualTo(statement4);
134+
assertThat(statements).containsExactly(statement1, statement2, statement3, statement4);
154135
}
155136

156137
@Test // SPR-10330
157138
public void readAndSplitScriptContainingCommentsWithLeadingTabs() throws Exception {
158139
String script = readScript("test-data-with-comments-and-leading-tabs.sql");
159140
List<String> statements = new ArrayList<>();
160141
splitSqlScript(script, ';', statements);
161-
162142
String statement1 = "insert into customer (id, name) values (1, 'Sam Brannen')";
163143
String statement2 = "insert into orders(id, order_date, customer_id) values (1, '2013-06-08', 1)";
164144
String statement3 = "insert into orders(id, order_date, customer_id) values (2, '2013-06-08', 1)";
165-
166-
assertThat(statements.size()).as("wrong number of statements").isEqualTo(3);
167-
assertThat(statements.get(0)).as("statement 1 not split correctly").isEqualTo(statement1);
168-
assertThat(statements.get(1)).as("statement 2 not split correctly").isEqualTo(statement2);
169-
assertThat(statements.get(2)).as("statement 3 not split correctly").isEqualTo(statement3);
145+
assertThat(statements).containsExactly(statement1, statement2, statement3);
170146
}
171147

172148
@Test // SPR-9531
173149
public void readAndSplitScriptContainingMultiLineComments() throws Exception {
174150
String script = readScript("test-data-with-multi-line-comments.sql");
175151
List<String> statements = new ArrayList<>();
176152
splitSqlScript(script, ';', statements);
177-
178153
String statement1 = "INSERT INTO users(first_name, last_name) VALUES('Juergen', 'Hoeller')";
179154
String statement2 = "INSERT INTO users(first_name, last_name) VALUES( 'Sam' , 'Brannen' )";
180-
181-
assertThat(statements.size()).as("wrong number of statements").isEqualTo(2);
182-
assertThat(statements.get(0)).as("statement 1 not split correctly").isEqualTo(statement1);
183-
assertThat(statements.get(1)).as("statement 2 not split correctly").isEqualTo(statement2);
155+
assertThat(statements).containsExactly(statement1, statement2);
184156
}
185157

186158
@Test
187159
public void readAndSplitScriptContainingMultiLineNestedComments() throws Exception {
188160
String script = readScript("test-data-with-multi-line-nested-comments.sql");
189161
List<String> statements = new ArrayList<>();
190162
splitSqlScript(script, ';', statements);
191-
192163
String statement1 = "INSERT INTO users(first_name, last_name) VALUES('Juergen', 'Hoeller')";
193164
String statement2 = "INSERT INTO users(first_name, last_name) VALUES( 'Sam' , 'Brannen' )";
194-
195-
assertThat(statements.size()).as("wrong number of statements").isEqualTo(2);
196-
assertThat(statements.get(0)).as("statement 1 not split correctly").isEqualTo(statement1);
197-
assertThat(statements.get(1)).as("statement 2 not split correctly").isEqualTo(statement2);
165+
assertThat(statements).containsExactly(statement1, statement2);
198166
}
199167

200168
@Test
201169
public void containsDelimiters() {
202170
assertThat(containsSqlScriptDelimiters("select 1\n select ';'", ";")).isFalse();
203171
assertThat(containsSqlScriptDelimiters("select 1; select 2", ";")).isTrue();
204-
205172
assertThat(containsSqlScriptDelimiters("select 1; select '\\n\n';", "\n")).isFalse();
206173
assertThat(containsSqlScriptDelimiters("select 1\n select 2", "\n")).isTrue();
207-
208174
assertThat(containsSqlScriptDelimiters("select 1\n select 2", "\n\n")).isFalse();
209175
assertThat(containsSqlScriptDelimiters("select 1\n\n select 2", "\n\n")).isTrue();
210-
211176
// MySQL style escapes '\\'
212177
assertThat(containsSqlScriptDelimiters("insert into users(first_name, last_name)\nvalues('a\\\\', 'b;')", ";")).isFalse();
213178
assertThat(containsSqlScriptDelimiters("insert into users(first_name, last_name)\nvalues('Charles', 'd\\'Artagnan'); select 1;", ";")).isTrue();

0 commit comments

Comments
 (0)