From 3270182be64963607e6656911ca05de420b9815e Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Thu, 24 Jun 2021 10:02:21 +0200 Subject: [PATCH] [jOOQ/jOOQ#12053] Add disclaimers about mocking also to Javadoc --- jOOQ/src/main/java/org/jooq/tools/jdbc/Mock.java | 10 ++++++++++ .../java/org/jooq/tools/jdbc/MockConfiguration.java | 2 -- .../java/org/jooq/tools/jdbc/MockConnection.java | 10 ++++++++++ .../org/jooq/tools/jdbc/MockConnectionProvider.java | 10 ++++++++++ .../java/org/jooq/tools/jdbc/MockDataProvider.java | 13 +++++++------ .../java/org/jooq/tools/jdbc/MockFileDatabase.java | 10 ++++++++++ .../tools/jdbc/MockFileDatabaseConfiguration.java | 10 ++++++++++ 7 files changed, 57 insertions(+), 8 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/tools/jdbc/Mock.java b/jOOQ/src/main/java/org/jooq/tools/jdbc/Mock.java index 2442449995..93445bf0e9 100644 --- a/jOOQ/src/main/java/org/jooq/tools/jdbc/Mock.java +++ b/jOOQ/src/main/java/org/jooq/tools/jdbc/Mock.java @@ -46,6 +46,16 @@ import org.jooq.Result; /** * Various utilities related to {@link MockDataProvider}. + *

+ * Disclaimer: The general idea of mocking a JDBC connection with this + * jOOQ API is to provide quick workarounds, injection points, etc. using a very + * simple JDBC abstraction. It is NOT RECOMMENDED to emulate an entire database + * (including complex state transitions, transactions, locking, etc.) using this + * mock API. Once you have this requirement, please consider using an actual + * database instead for integration testing (e.g. using + * https://www.testcontainers.org), + * rather than implementing your test database inside of a + * MockDataProvider. * * @author Lukas Eder */ diff --git a/jOOQ/src/main/java/org/jooq/tools/jdbc/MockConfiguration.java b/jOOQ/src/main/java/org/jooq/tools/jdbc/MockConfiguration.java index 3df49b2712..2594955571 100644 --- a/jOOQ/src/main/java/org/jooq/tools/jdbc/MockConfiguration.java +++ b/jOOQ/src/main/java/org/jooq/tools/jdbc/MockConfiguration.java @@ -74,8 +74,6 @@ import org.jooq.conf.Settings; import org.jooq.impl.AbstractConfiguration; import org.jooq.impl.DefaultDSLContext; -import org.jetbrains.annotations.NotNull; - import io.r2dbc.spi.ConnectionFactory; /** diff --git a/jOOQ/src/main/java/org/jooq/tools/jdbc/MockConnection.java b/jOOQ/src/main/java/org/jooq/tools/jdbc/MockConnection.java index 9fc11299ca..76554d3953 100644 --- a/jOOQ/src/main/java/org/jooq/tools/jdbc/MockConnection.java +++ b/jOOQ/src/main/java/org/jooq/tools/jdbc/MockConnection.java @@ -88,6 +88,16 @@ import java.util.Properties; * has been optimised for usage with jOOQ. JDBC features that are not used by * jOOQ (e.g. procedure bind value access by parameter name) are not supported * in this mock framework + *

+ * Disclaimer: The general idea of mocking a JDBC connection with this + * jOOQ API is to provide quick workarounds, injection points, etc. using a very + * simple JDBC abstraction. It is NOT RECOMMENDED to emulate an entire database + * (including complex state transitions, transactions, locking, etc.) using this + * mock API. Once you have this requirement, please consider using an actual + * database instead for integration testing (e.g. using + * https://www.testcontainers.org), + * rather than implementing your test database inside of a + * MockDataProvider. * * @author Lukas Eder */ diff --git a/jOOQ/src/main/java/org/jooq/tools/jdbc/MockConnectionProvider.java b/jOOQ/src/main/java/org/jooq/tools/jdbc/MockConnectionProvider.java index cc476d4bb3..60dbaef6eb 100644 --- a/jOOQ/src/main/java/org/jooq/tools/jdbc/MockConnectionProvider.java +++ b/jOOQ/src/main/java/org/jooq/tools/jdbc/MockConnectionProvider.java @@ -47,6 +47,16 @@ import org.jooq.ConnectionProvider; * This {@link ConnectionProvider} wraps a delegate * ConnectionProvider and wraps all acquired {@link Connection} * references in {@link MockConnection}. + *

+ * Disclaimer: The general idea of mocking a JDBC connection with this + * jOOQ API is to provide quick workarounds, injection points, etc. using a very + * simple JDBC abstraction. It is NOT RECOMMENDED to emulate an entire database + * (including complex state transitions, transactions, locking, etc.) using this + * mock API. Once you have this requirement, please consider using an actual + * database instead for integration testing (e.g. using + * https://www.testcontainers.org), + * rather than implementing your test database inside of a + * MockDataProvider. * * @author Lukas Eder */ diff --git a/jOOQ/src/main/java/org/jooq/tools/jdbc/MockDataProvider.java b/jOOQ/src/main/java/org/jooq/tools/jdbc/MockDataProvider.java index 91ecd1173c..81db1e7304 100644 --- a/jOOQ/src/main/java/org/jooq/tools/jdbc/MockDataProvider.java +++ b/jOOQ/src/main/java/org/jooq/tools/jdbc/MockDataProvider.java @@ -52,14 +52,15 @@ import org.jooq.ResultQuery; * Supply this data provider to your {@link MockConnection} in order to globally * provide data for SQL statements. *

- * The general idea of mocking a JDBC connection with this jOOQ API is to - * provide quick workarounds, injection points, etc. using a very - * simple JDBC abstraction (see the {@link #execute(MockExecuteContext)} - * method). It is NOT RECOMMENDED to emulate an entire database + * Disclaimer: The general idea of mocking a JDBC connection with this + * jOOQ API is to provide quick workarounds, injection points, etc. using a very + * simple JDBC abstraction. It is NOT RECOMMENDED to emulate an entire database * (including complex state transitions, transactions, locking, etc.) using this * mock API. Once you have this requirement, please consider using an actual - * database instead for integration testing, rather than implementing your test - * database inside of a {@link MockDataProvider}. + * database instead for integration testing (e.g. using + * https://www.testcontainers.org), + * rather than implementing your test database inside of a + * MockDataProvider. *

* See {@link #execute(MockExecuteContext)} for more details. * 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 85913bf1c3..ab46fbe4c2 100644 --- a/jOOQ/src/main/java/org/jooq/tools/jdbc/MockFileDatabase.java +++ b/jOOQ/src/main/java/org/jooq/tools/jdbc/MockFileDatabase.java @@ -111,6 +111,16 @@ import org.jooq.tools.JooqLogger; *

  • In the future, other types of result sources will be supported, such as * CSV, XML, JSON
  • * + *

    + * Disclaimer: The general idea of mocking a JDBC connection with this + * jOOQ API is to provide quick workarounds, injection points, etc. using a very + * simple JDBC abstraction. It is NOT RECOMMENDED to emulate an entire database + * (including complex state transitions, transactions, locking, etc.) using this + * mock API. Once you have this requirement, please consider using an actual + * database instead for integration testing (e.g. using + * https://www.testcontainers.org), + * rather than implementing your test database inside of a + * MockDataProvider. * * @author Lukas Eder * @author Samy Deghou diff --git a/jOOQ/src/main/java/org/jooq/tools/jdbc/MockFileDatabaseConfiguration.java b/jOOQ/src/main/java/org/jooq/tools/jdbc/MockFileDatabaseConfiguration.java index a7d6a38981..38df1689ba 100644 --- a/jOOQ/src/main/java/org/jooq/tools/jdbc/MockFileDatabaseConfiguration.java +++ b/jOOQ/src/main/java/org/jooq/tools/jdbc/MockFileDatabaseConfiguration.java @@ -47,6 +47,16 @@ import org.jooq.Source; /** * A configuration object for the {@link MockFileDatabase}. + *

    + * Disclaimer: The general idea of mocking a JDBC connection with this + * jOOQ API is to provide quick workarounds, injection points, etc. using a very + * simple JDBC abstraction. It is NOT RECOMMENDED to emulate an entire database + * (including complex state transitions, transactions, locking, etc.) using this + * mock API. Once you have this requirement, please consider using an actual + * database instead for integration testing (e.g. using + * https://www.testcontainers.org), + * rather than implementing your test database inside of a + * MockDataProvider. * * @author Lukas Eder */