2 * This file is part of yosql. It is subject to the license terms in the LICENSE file found in the top-level
3 * directory of this distribution and at https://creativecommons.org/publicdomain/zero/1.0/. No part of yosql,
4 * including this file, may be copied, modified, propagated, or distributed except according to the terms contained
8 package wtf
.metio
.yosql
.codegen
.dao
;
10 import org
.junit
.jupiter
.api
.Assertions
;
11 import org
.junit
.jupiter
.api
.Test
;
12 import wtf
.metio
.yosql
.internals
.testing
.configs
.SqlConfigurations
;
13 import wtf
.metio
.yosql
.models
.configuration
.ResultRowConverter
;
14 import wtf
.metio
.yosql
.models
.immutables
.SqlConfiguration
;
17 * Verifies that {@link JdbcBlocks}s work correctly.
19 abstract class JdbcBlocksTCK
{
22 * @return A new {@link JdbcBlocks}.
24 abstract JdbcBlocks
generator();
26 abstract String
getConnectionInlineExpectation();
28 abstract String
prepareStatementInlineExpectation();
30 abstract String
prepareCallInlineExpectation();
32 abstract String
getMetaDataStatementExpectation();
34 abstract String
executeQueryInlineExpectation();
36 abstract String
returnExecuteUpdateWithReturnExpectation();
38 abstract String
returnExecuteUpdateWithoutReturnExpectation();
40 abstract String
executeBatchExpectation();
42 abstract String
closeResultSetExpectation();
44 abstract String
closePrepareStatementExpectation();
46 abstract String
closeConnectionExpectation();
48 abstract String
closeConnectionWithGivenConnectionExpectation();
50 abstract String
executeStatementExpectation();
52 abstract String
executeStatementWithoutPreparationExpectation();
54 abstract String
openConnectionExpectation();
56 abstract String
openConnectionWithoutConnectionExpectation();
58 abstract String
openConnectionWithGivenConnectionWithoutRethrowExpectation();
60 abstract String
tryPrepareCallableExpectation();
62 abstract String
createStatementExpectation();
64 abstract String
createStatementWithoutPreparationExpectation();
66 abstract String
prepareBatchExpectation();
68 abstract String
pickVendorQueryExpectation();
70 abstract String
logExecutedQueryExpectation();
72 abstract String
logExecutedBatchQueryExpectation();
74 abstract String
returnAsMultipleExpectation();
76 abstract String
returnAsSingleExpectation();
78 abstract String
returnAsSingleWithThrowExpectation();
80 abstract String
streamStatefulExpectation();
82 abstract String
streamStatefulWithGivenConnectionExpectation();
84 abstract String
setParametersExpectation();
86 abstract String
setBatchParametersExpectation();
89 final void getConnectionInline() {
90 Assertions
.assertEquals(
91 getConnectionInlineExpectation(),
92 generator().getConnectionInline().toString());
96 final void prepareStatementInline() {
97 Assertions
.assertEquals(
98 prepareStatementInlineExpectation(),
99 generator().prepareStatementInline().toString());
103 final void prepareCallInline() {
104 Assertions
.assertEquals(
105 prepareCallInlineExpectation(),
106 generator().prepareCallInline().toString());
110 final void getMetaDataStatement() {
111 Assertions
.assertEquals(
112 getMetaDataStatementExpectation(),
113 generator().getMetaDataStatement().toString());
117 final void executeQueryInline() {
118 Assertions
.assertEquals(
119 executeQueryInlineExpectation(),
120 generator().executeQueryInline().toString());
124 final void returnExecuteUpdateWithReturn() {
125 Assertions
.assertEquals(
126 returnExecuteUpdateWithReturnExpectation(),
127 generator().returnExecuteUpdate(SqlConfiguration
.copyOf(SqlConfigurations
.sqlConfiguration())
128 .withWritesReturnUpdateCount(true)).toString());
132 final void returnExecuteUpdateWithoutReturn() {
133 Assertions
.assertEquals(
134 returnExecuteUpdateWithoutReturnExpectation(),
135 generator().returnExecuteUpdate(SqlConfiguration
.copyOf(SqlConfigurations
.sqlConfiguration())
136 .withWritesReturnUpdateCount(false)).toString());
140 final void executeBatch() {
141 Assertions
.assertEquals(
142 executeBatchExpectation(),
143 generator().executeBatch().toString());
147 final void closeResultSet() {
148 Assertions
.assertEquals(
149 closeResultSetExpectation(),
150 generator().closeResultSet().toString());
154 final void closePrepareStatement() {
155 Assertions
.assertEquals(
156 closePrepareStatementExpectation(),
157 generator().closePrepareStatement().toString());
161 final void closeConnection() {
162 Assertions
.assertEquals(
163 closeConnectionExpectation(),
164 generator().closeConnection(SqlConfigurations
.sqlConfiguration()).toString());
168 final void closeConnectionWithGivenConnection() {
169 Assertions
.assertEquals(
170 closeConnectionWithGivenConnectionExpectation(),
171 generator().closeConnection(SqlConfiguration
.copyOf(SqlConfigurations
.sqlConfiguration())
172 .withCreateConnection(false)).toString());
176 final void executeStatement() {
177 Assertions
.assertEquals(
178 executeStatementExpectation(),
179 generator().executeStatement(SqlConfiguration
.copyOf(SqlConfigurations
.sqlConfiguration())
180 .withUsePreparedStatement(true)).toString());
184 final void executeStatementWithoutPreparation() {
185 Assertions
.assertEquals(
186 executeStatementWithoutPreparationExpectation(),
187 generator().executeStatement(SqlConfiguration
.copyOf(SqlConfigurations
.sqlConfiguration())
188 .withUsePreparedStatement(false)).toString());
192 final void openConnection() {
193 Assertions
.assertEquals(
194 openConnectionExpectation(),
195 generator().openConnection(SqlConfiguration
.copyOf(SqlConfigurations
.sqlConfiguration())
196 .withCreateConnection(true)).toString());
200 final void openConnectionWithoutConnection() {
201 Assertions
.assertEquals(
202 openConnectionWithoutConnectionExpectation(),
203 generator().openConnection(SqlConfiguration
.copyOf(SqlConfigurations
.sqlConfiguration())
204 .withCreateConnection(false)).toString());
208 final void openConnectionWithGivenConnectionWithoutRethrow() {
209 Assertions
.assertEquals(
210 openConnectionWithGivenConnectionWithoutRethrowExpectation(),
211 generator().openConnection(SqlConfiguration
.copyOf(SqlConfigurations
.sqlConfiguration())
212 .withCreateConnection(false)
213 .withCatchAndRethrow(false)).toString());
217 final void tryPrepareCallable() {
218 Assertions
.assertEquals(
219 tryPrepareCallableExpectation(),
220 generator().tryPrepareCallable().toString());
224 final void createStatement() {
225 Assertions
.assertEquals(
226 createStatementExpectation(),
227 generator().createStatement(SqlConfiguration
.copyOf(SqlConfigurations
.sqlConfiguration())
228 .withUsePreparedStatement(true)).toString());
232 final void createStatementWithoutPreparation() {
233 Assertions
.assertEquals(
234 createStatementWithoutPreparationExpectation(),
235 generator().createStatement(SqlConfiguration
.copyOf(SqlConfigurations
.sqlConfiguration())
236 .withUsePreparedStatement(false)).toString());
240 final void prepareBatch() {
241 Assertions
.assertEquals(
242 prepareBatchExpectation(),
243 generator().prepareBatch(SqlConfigurations
.sqlConfiguration()).toString());
247 final void pickVendorQuery() {
248 Assertions
.assertEquals(
249 pickVendorQueryExpectation(),
250 generator().pickVendorQuery(SqlConfigurations
.sqlStatement()).toString());
254 final void logExecutedQuery() {
255 Assertions
.assertEquals(
256 logExecutedQueryExpectation(),
257 generator().logExecutedQuery(SqlConfigurations
.sqlConfiguration()).toString());
261 final void logExecutedBatchQuery() {
262 Assertions
.assertEquals(
263 logExecutedBatchQueryExpectation(),
264 generator().logExecutedBatchQuery(SqlConfigurations
.sqlConfiguration()).toString());
268 final void returnAsMultiple() {
269 final var converter
= ResultRowConverter
.builder()
270 .setAlias("converter")
271 .setConverterType("com.example.Converter")
272 .setMethodName("apply")
273 .setResultType("com.example.Domain")
275 Assertions
.assertEquals(
276 returnAsMultipleExpectation(),
277 generator().returnAsMultiple(converter
).toString());
281 final void returnAsSingle() {
282 Assertions
.assertEquals(
283 returnAsSingleExpectation(),
284 generator().returnAsSingle(SqlConfigurations
.sqlConfiguration()).toString());
288 final void returnAsSingleWithThrow() {
289 Assertions
.assertEquals(
290 returnAsSingleWithThrowExpectation(),
291 generator().returnAsSingle(SqlConfiguration
.copyOf(SqlConfigurations
.sqlConfiguration())
292 .withThrowOnMultipleResults(true)).toString());
296 final void streamStateful() {
297 Assertions
.assertEquals(
298 streamStatefulExpectation(),
299 generator().streamStateful(SqlConfigurations
.sqlConfiguration()).toString());
303 final void streamStatefulWithGivenConnection() {
304 Assertions
.assertEquals(
305 streamStatefulWithGivenConnectionExpectation(),
306 generator().streamStateful(SqlConfiguration
.copyOf(SqlConfigurations
.sqlConfiguration())
307 .withCreateConnection(false)).toString());
311 final void setParameters() {
312 Assertions
.assertEquals(
313 setParametersExpectation(),
314 generator().setParameters(SqlConfigurations
.sqlConfiguration()).toString());
318 final void setBatchParameters() {
319 Assertions
.assertEquals(
320 setBatchParametersExpectation(),
321 generator().setBatchParameters(SqlConfigurations
.sqlConfiguration()).toString());