From 8085ca66af24e89bc08ac8885d2adfb574b2305d Mon Sep 17 00:00:00 2001 From: lukaseder Date: Fri, 7 Dec 2018 10:40:12 +0100 Subject: [PATCH] [#8093] Add support for result less statements in MockFileDatabase --- .../main/resources/org/jooq/web/manual-3.10.xml | 9 +++++++-- .../main/resources/org/jooq/web/manual-3.11.xml | 9 +++++++-- .../main/resources/org/jooq/web/manual-3.12.xml | 9 +++++++-- .../org/jooq/tools/jdbc/MockFileDatabase.java | 16 +++++++++------- 4 files changed, 30 insertions(+), 13 deletions(-) diff --git a/jOOQ-manual/src/main/resources/org/jooq/web/manual-3.10.xml b/jOOQ-manual/src/main/resources/org/jooq/web/manual-3.10.xml index 8e32da81d4..4688deb994 100644 --- a/jOOQ-manual/src/main/resources/org/jooq/web/manual-3.10.xml +++ b/jOOQ-manual/src/main/resources/org/jooq/web/manual-3.10.xml @@ -13935,11 +13935,16 @@ select 'A'; > A @ rows: 1 -select 'A', 'B'; +select 'A', 'B' union all 'C', 'D'; > A B > - - > A B -@ rows: 1 +> C D +@ rows: 2 + +# Statements without result sets just leave that section empty +update t set x = 1; +@ rows: 3 ]]>

diff --git a/jOOQ-manual/src/main/resources/org/jooq/web/manual-3.11.xml b/jOOQ-manual/src/main/resources/org/jooq/web/manual-3.11.xml index 4ca0165f45..6a769ede38 100644 --- a/jOOQ-manual/src/main/resources/org/jooq/web/manual-3.11.xml +++ b/jOOQ-manual/src/main/resources/org/jooq/web/manual-3.11.xml @@ -14166,11 +14166,16 @@ select 'A'; > A @ rows: 1 -select 'A', 'B'; +select 'A', 'B' union all 'C', 'D'; > A B > - - > A B -@ rows: 1 +> C D +@ rows: 2 + +# Statements without result sets just leave that section empty +update t set x = 1; +@ rows: 3 ]]>

diff --git a/jOOQ-manual/src/main/resources/org/jooq/web/manual-3.12.xml b/jOOQ-manual/src/main/resources/org/jooq/web/manual-3.12.xml index a7b9929b7f..ae3eb5e787 100644 --- a/jOOQ-manual/src/main/resources/org/jooq/web/manual-3.12.xml +++ b/jOOQ-manual/src/main/resources/org/jooq/web/manual-3.12.xml @@ -14302,11 +14302,16 @@ select 'A'; > A @ rows: 1 -select 'A', 'B'; +select 'A', 'B' union all 'C', 'D'; > A B > - - > A B -@ rows: 1 +> C D +@ rows: 2 + +# Statements without result sets just leave that section empty +update t set x = 1; +@ rows: 3 ]]>

diff --git a/jOOQ/src/main/java/org/jooq/tools/jdbc/MockFileDatabase.java b/jOOQ/src/main/java/org/jooq/tools/jdbc/MockFileDatabase.java index e72567bc57..28d9b9ebbf 100644 --- a/jOOQ/src/main/java/org/jooq/tools/jdbc/MockFileDatabase.java +++ b/jOOQ/src/main/java/org/jooq/tools/jdbc/MockFileDatabase.java @@ -283,7 +283,7 @@ public class MockFileDatabase implements MockDataProvider { MockResult mock = parse(line); results.add(mock); - if (log.isDebugEnabled()) { + if (mock.data != null && log.isDebugEnabled()) { String comment = "Loaded Result"; for (String l : mock.data.format(5).split("\n")) { @@ -298,13 +298,15 @@ public class MockFileDatabase implements MockDataProvider { if (rowString.startsWith("@ rows:")) rows = Integer.parseInt(rowString.substring(7).trim()); - MockResult result = new MockResult(rows, - nullLiteral == null - ? create.fetchFromTXT(currentResult.toString()) - : create.fetchFromTXT(currentResult.toString(), nullLiteral) - ); + String resultText = currentResult.toString(); + MockResult result = resultText.isEmpty() + ? new MockResult(rows) + : new MockResult(rows, nullLiteral == null + ? create.fetchFromTXT(resultText) + : create.fetchFromTXT(resultText, nullLiteral) + ); - if (rows != result.data.size()) + if (result.data != null && rows != result.data.size()) throw new MockFileDatabaseException("Rows mismatch. Declared: " + rows + ". Actual: " + result.data.size() + "."); return result;