Skip to content

Commit f7d3124

Browse files
committed
#57 - Added tests for the exception message.
Original pull request: #97.
1 parent e161476 commit f7d3124

File tree

2 files changed

+39
-4
lines changed

2 files changed

+39
-4
lines changed

src/main/java/org/springframework/data/r2dbc/support/AbstractFallbackR2dbcExceptionTranslator.java

+6-1
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,11 @@ public DataAccessException translate(String task, @Nullable String sql, R2dbcExc
111111
* @return the message {@code String} to use.
112112
*/
113113
protected String buildMessage(String task, @Nullable String sql, R2dbcException ex) {
114-
return task + "; " + (sql != null ? "SQL [" + sql + "]; " : "") + ex.getMessage();
114+
115+
return task + "; " + //
116+
(sql != null //
117+
? "SQL [" + sql + "]; " //
118+
: "" //
119+
) + ex.getMessage();
115120
}
116121
}

src/test/java/org/springframework/data/r2dbc/support/R2dbcExceptionSubclassTranslatorUnitTests.java

+33-3
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
import io.r2dbc.spi.R2dbcTransientResourceException;
2828

2929
import org.junit.Test;
30-
3130
import org.springframework.dao.ConcurrencyFailureException;
3231
import org.springframework.dao.DataAccessResourceFailureException;
3332
import org.springframework.dao.DataIntegrityViolationException;
@@ -49,9 +48,10 @@ public class R2dbcExceptionSubclassTranslatorUnitTests {
4948
@Test // gh-57
5049
public void shouldTranslateTransientResourceException() {
5150

52-
Exception exception = translator.translate("", "", new R2dbcTransientResourceException());
51+
Exception exception = translator.translate("", "", new R2dbcTransientResourceException(""));
5352

54-
assertThat(exception).isInstanceOf(TransientDataAccessResourceException.class);
53+
assertThat(exception)
54+
.isInstanceOf(TransientDataAccessResourceException.class);
5555
}
5656

5757
@Test // gh-57
@@ -110,5 +110,35 @@ public void shouldTranslateBadSqlGrammarException() {
110110
assertThat(exception).isInstanceOf(BadSqlGrammarException.class);
111111
}
112112

113+
@Test // gh-57
114+
public void messageGeneration() {
115+
116+
Exception exception = translator.translate("TASK", "SOME-SQL", new R2dbcTransientResourceException("MESSAGE"));
117+
118+
assertThat(exception) //
119+
.isInstanceOf(TransientDataAccessResourceException.class) //
120+
.hasMessage("TASK; SQL [SOME-SQL]; MESSAGE; nested exception is io.r2dbc.spi.R2dbcTransientResourceException: MESSAGE");
121+
}
122+
123+
@Test // gh-57
124+
public void messageGenerationNullSQL() {
125+
126+
Exception exception = translator.translate("TASK", null, new R2dbcTransientResourceException("MESSAGE"));
127+
128+
assertThat(exception) //
129+
.isInstanceOf(TransientDataAccessResourceException.class) //
130+
.hasMessage("TASK; MESSAGE; nested exception is io.r2dbc.spi.R2dbcTransientResourceException: MESSAGE");
131+
}
132+
133+
@Test // gh-57
134+
public void messageGenerationNullMessage() {
135+
136+
Exception exception = translator.translate("TASK", "SOME-SQL", new R2dbcTransientResourceException());
137+
138+
assertThat(exception) //
139+
.isInstanceOf(TransientDataAccessResourceException.class) //
140+
.hasMessage("TASK; SQL [SOME-SQL]; null; nested exception is io.r2dbc.spi.R2dbcTransientResourceException");
141+
}
142+
113143
private static class MyTransientExceptions extends R2dbcException {}
114144
}

0 commit comments

Comments
 (0)