Skip to content

Commit 29f1edc

Browse files
schaudermp911de
authored andcommitted
#23 - Polishing.
Formatting. Made Tests simpler and stricter by using `containsExactly`. Added @test annotation to ignored database specific tests so they actually show up as ignored. Original pull request: #47.
1 parent b43b119 commit 29f1edc

File tree

4 files changed

+23
-18
lines changed

4 files changed

+23
-18
lines changed

src/main/java/org/springframework/data/r2dbc/function/NamedParameterExpander.java

+8-2
Original file line numberDiff line numberDiff line change
@@ -36,14 +36,18 @@
3636
*/
3737
public class NamedParameterExpander {
3838

39-
/** Default maximum number of entries for the SQL cache: 256. */
39+
/**
40+
* Default maximum number of entries for the SQL cache: 256.
41+
*/
4042
public static final int DEFAULT_CACHE_LIMIT = 256;
4143

4244
private volatile int cacheLimit = DEFAULT_CACHE_LIMIT;
4345

4446
private final Log logger = LogFactory.getLog(getClass());
4547

46-
/** Cache of original SQL String to ParsedSql representation. */
48+
/**
49+
* Cache of original SQL String to ParsedSql representation.
50+
*/
4751
@SuppressWarnings("serial") private final Map<String, ParsedSql> parsedSqlCache = new LinkedHashMap<String, ParsedSql>(
4852
DEFAULT_CACHE_LIMIT, 0.75f, true) {
4953
@Override
@@ -101,8 +105,10 @@ protected ParsedSql getParsedSql(String sql) {
101105
}
102106

103107
synchronized (this.parsedSqlCache) {
108+
104109
ParsedSql parsedSql = this.parsedSqlCache.get(sql);
105110
if (parsedSql == null) {
111+
106112
parsedSql = NamedParameterUtils.parseSqlStatement(sql);
107113
this.parsedSqlCache.put(sql, parsedSql);
108114
}

src/test/java/org/springframework/data/r2dbc/function/NamedParameterUtilsUnitTests.java

+12-14
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
* Unit tests for {@link NamedParameterUtils}.
3333
*
3434
* @author Mark Paluch
35+
* @author Jens Schauder
3536
*/
3637
public class NamedParameterUtilsUnitTests {
3738

@@ -42,19 +43,19 @@ public void shouldParseSql() {
4243

4344
String sql = "xxx :a yyyy :b :c :a zzzzz";
4445
ParsedSql psql = NamedParameterUtils.parseSqlStatement(sql);
45-
assertThat(psql.getParameterNames()).containsSequence("a", "b", "c", "a");
46+
assertThat(psql.getParameterNames()).containsExactly("a", "b", "c", "a");
4647
assertThat(psql.getTotalParameterCount()).isEqualTo(4);
4748
assertThat(psql.getNamedParameterCount()).isEqualTo(3);
4849

4950
String sql2 = "xxx &a yyyy ? zzzzz";
5051
ParsedSql psql2 = NamedParameterUtils.parseSqlStatement(sql2);
51-
assertThat(psql2.getParameterNames().get(0)).isEqualTo("a");
52+
assertThat(psql2.getParameterNames()).containsExactly("a");
5253
assertThat(psql2.getTotalParameterCount()).isEqualTo(2);
5354
assertThat(psql2.getNamedParameterCount()).isEqualTo(1);
5455

5556
String sql3 = "xxx &ä+:ö" + '\t' + ":ü%10 yyyy ? zzzzz";
5657
ParsedSql psql3 = NamedParameterUtils.parseSqlStatement(sql3);
57-
assertThat(psql3.getParameterNames()).containsSequence("ä", "ö", "ü");
58+
assertThat(psql3.getParameterNames()).containsExactly("ä", "ö", "ü");
5859
}
5960

6061
@Test // gh-23
@@ -177,9 +178,8 @@ public void parseSqlStatementWithEscapedColon() {
177178
String sql = "select '0\\:0' as a, foo from bar where baz < DATE(:p1 23\\:59\\:59) and baz = :p2";
178179

179180
ParsedSql parsedSql = NamedParameterUtils.parseSqlStatement(sql);
180-
assertThat(parsedSql.getParameterNames()).hasSize(2);
181-
assertThat(parsedSql.getParameterNames().get(0)).isEqualTo("p1");
182-
assertThat(parsedSql.getParameterNames().get(1)).isEqualTo("p2");
181+
182+
assertThat(parsedSql.getParameterNames()).containsExactly("p1", "p2");
183183
assertThat(expand(parsedSql)).isEqualTo(expectedSql);
184184
}
185185

@@ -190,9 +190,7 @@ public void parseSqlStatementWithBracketDelimitedParameterNames() {
190190
String sql = "select foo from bar where baz = b:{p1}:{p2}z";
191191

192192
ParsedSql parsedSql = NamedParameterUtils.parseSqlStatement(sql);
193-
assertThat(parsedSql.getParameterNames()).hasSize(2);
194-
assertThat(parsedSql.getParameterNames().get(0)).isEqualTo("p1");
195-
assertThat(parsedSql.getParameterNames().get(1)).isEqualTo("p2");
193+
assertThat(parsedSql.getParameterNames()).containsExactly("p1", "p2");
196194
assertThat(expand(parsedSql)).isEqualTo(expectedSql);
197195
}
198196

@@ -217,12 +215,12 @@ public void parseSqlStatementWithEmptyBracketsOrBracketsInQuotes() {
217215

218216
@Test // gh-23
219217
public void parseSqlStatementWithSingleLetterInBrackets() {
218+
220219
String expectedSql = "select foo from bar where baz = b$1z";
221220
String sql = "select foo from bar where baz = b:{p}z";
222221

223222
ParsedSql parsedSql = NamedParameterUtils.parseSqlStatement(sql);
224-
assertThat(parsedSql.getParameterNames()).hasSize(1);
225-
assertThat(parsedSql.getParameterNames().get(0)).isEqualTo("p");
223+
assertThat(parsedSql.getParameterNames()).containsExactly("p");
226224
assertThat(expand(parsedSql)).isEqualTo(expectedSql);
227225
}
228226

@@ -260,7 +258,7 @@ public void parseSqlStatementWithQuotedSingleQuote() {
260258
ParsedSql psql = NamedParameterUtils.parseSqlStatement(sql);
261259

262260
assertThat(psql.getTotalParameterCount()).isEqualTo(1);
263-
assertThat(psql.getParameterNames().get(0)).isEqualTo("xxx");
261+
assertThat(psql.getParameterNames()).containsExactly("xxx");
264262
}
265263

266264
@Test // gh-23
@@ -271,7 +269,7 @@ public void parseSqlStatementWithQuotesAndCommentBefore() {
271269
ParsedSql psql = NamedParameterUtils.parseSqlStatement(sql);
272270

273271
assertThat(psql.getTotalParameterCount()).isEqualTo(1);
274-
assertThat(psql.getParameterNames().get(0)).isEqualTo("xxx");
272+
assertThat(psql.getParameterNames()).containsExactly("xxx");
275273
}
276274

277275
@Test // gh-23
@@ -282,7 +280,7 @@ public void parseSqlStatementWithQuotesAndCommentAfter() {
282280
ParsedSql psql2 = NamedParameterUtils.parseSqlStatement(sql2);
283281

284282
assertThat(psql2.getTotalParameterCount()).isEqualTo(1);
285-
assertThat(psql2.getParameterNames().get(0)).isEqualTo("xxx");
283+
assertThat(psql2.getParameterNames()).containsExactly("xxx");
286284
}
287285

288286
private String expand(ParsedSql sql) {

src/test/java/org/springframework/data/r2dbc/function/PostgresDatabaseClientIntegrationTests.java

+3
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121

2222
import org.junit.ClassRule;
2323
import org.junit.Ignore;
24+
import org.junit.Test;
2425
import org.springframework.data.r2dbc.testing.ExternalDatabase;
2526
import org.springframework.data.r2dbc.testing.PostgresTestSupport;
2627

@@ -49,10 +50,12 @@ protected String getCreateTableStatement() {
4950
}
5051

5152
@Ignore("Adding RETURNING * lets Postgres report 0 affected rows.")
53+
@Test
5254
@Override
5355
public void insert() {}
5456

5557
@Ignore("Adding RETURNING * lets Postgres report 0 affected rows.")
58+
@Test
5659
@Override
5760
public void insertTypedObject() {}
5861
}

src/test/java/org/springframework/data/r2dbc/testing/PostgresTestSupport.java

-2
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,6 @@ public class PostgresTestSupport {
3535
+ " manual integer NULL\n" //
3636
+ ");";
3737

38-
public static String INSERT_INTO_LEGOSET = "INSERT INTO legoset (id, name, manual) VALUES($1, $2, $3)";
39-
4038
/**
4139
* Returns a database either hosted locally at {@code postgres:@localhost:5432/postgres} or running inside Docker.
4240
*

0 commit comments

Comments
 (0)