19
19
import javax .sql .DataSource ;
20
20
21
21
import org .jooq .CharsetProvider ;
22
+ import org .jooq .ConnectionProvider ;
22
23
import org .jooq .ConverterProvider ;
23
24
import org .jooq .DSLContext ;
24
25
import org .jooq .ExecuteListener ;
31
32
import org .jooq .TransactionListenerProvider ;
32
33
import org .jooq .TransactionalRunnable ;
33
34
import org .jooq .VisitListenerProvider ;
35
+ import org .jooq .impl .DataSourceConnectionProvider ;
34
36
import org .jooq .impl .DefaultExecuteListenerProvider ;
35
37
import org .junit .jupiter .api .Test ;
36
38
42
44
import org .springframework .core .annotation .Order ;
43
45
import org .springframework .dao .DataIntegrityViolationException ;
44
46
import org .springframework .jdbc .datasource .DataSourceTransactionManager ;
47
+ import org .springframework .jdbc .datasource .TransactionAwareDataSourceProxy ;
45
48
import org .springframework .transaction .PlatformTransactionManager ;
46
49
47
50
import static org .assertj .core .api .Assertions .assertThat ;
@@ -101,7 +104,37 @@ void jooqWithTx() {
101
104
"insert into jooqtest (name) values ('foo');" )));
102
105
dsl .transaction (new AssertFetch (dsl , "select count(*) as total from jooqtest_tx;" , "1" ));
103
106
});
107
+ }
108
+
109
+ @ Test
110
+ void jooqWithDefaultConnectionProvider () {
111
+ this .contextRunner .withUserConfiguration (JooqDataSourceConfiguration .class ).run ((context ) -> {
112
+ DSLContext dsl = context .getBean (DSLContext .class );
113
+ ConnectionProvider connectionProvider = dsl .configuration ().connectionProvider ();
114
+ assertThat (connectionProvider ).isInstanceOf (DataSourceConnectionProvider .class );
115
+ DataSource connectionProviderDataSource = ((DataSourceConnectionProvider ) connectionProvider ).dataSource ();
116
+ assertThat (connectionProviderDataSource ).isInstanceOf (TransactionAwareDataSourceProxy .class );
117
+ });
118
+ }
119
+
120
+ @ Test
121
+ void jooqWithDefaultExecuteListenerProvider () {
122
+ this .contextRunner .withUserConfiguration (JooqDataSourceConfiguration .class ).run ((context ) -> {
123
+ DSLContext dsl = context .getBean (DSLContext .class );
124
+ assertThat (dsl .configuration ().executeListenerProviders ()).hasSize (1 );
125
+ });
126
+ }
104
127
128
+ @ Test
129
+ void jooqWithSeveralExecuteListenerProviders () {
130
+ this .contextRunner .withUserConfiguration (JooqDataSourceConfiguration .class , TestExecuteListenerProvider .class )
131
+ .run ((context ) -> {
132
+ DSLContext dsl = context .getBean (DSLContext .class );
133
+ ExecuteListenerProvider [] executeListenerProviders = dsl .configuration ().executeListenerProviders ();
134
+ assertThat (executeListenerProviders ).hasSize (2 );
135
+ assertThat (executeListenerProviders [0 ]).isInstanceOf (DefaultExecuteListenerProvider .class );
136
+ assertThat (executeListenerProviders [1 ]).isInstanceOf (TestExecuteListenerProvider .class );
137
+ });
105
138
}
106
139
107
140
@ Test
@@ -129,9 +162,7 @@ void customProvidersArePickedUp() {
129
162
VisitListenerProvider visitListenerProvider = mock (VisitListenerProvider .class );
130
163
TransactionListenerProvider transactionListenerProvider = mock (TransactionListenerProvider .class );
131
164
ExecutorProvider executorProvider = mock (ExecutorProvider .class );
132
- this .contextRunner
133
- .withUserConfiguration (JooqDataSourceConfiguration .class , TxManagerConfiguration .class ,
134
- TestExecuteListenerProvider .class )
165
+ this .contextRunner .withUserConfiguration (JooqDataSourceConfiguration .class , TxManagerConfiguration .class )
135
166
.withBean (RecordMapperProvider .class , () -> recordMapperProvider )
136
167
.withBean (RecordUnmapperProvider .class , () -> recordUnmapperProvider )
137
168
.withBean (RecordListenerProvider .class , () -> recordListenerProvider )
@@ -143,10 +174,6 @@ void customProvidersArePickedUp() {
143
174
assertThat (dsl .configuration ().recordUnmapperProvider ()).isSameAs (recordUnmapperProvider );
144
175
assertThat (dsl .configuration ().executorProvider ()).isSameAs (executorProvider );
145
176
assertThat (dsl .configuration ().recordListenerProviders ()).containsExactly (recordListenerProvider );
146
- ExecuteListenerProvider [] executeListenerProviders = dsl .configuration ().executeListenerProviders ();
147
- assertThat (executeListenerProviders ).hasSize (2 );
148
- assertThat (executeListenerProviders [0 ]).isInstanceOf (DefaultExecuteListenerProvider .class );
149
- assertThat (executeListenerProviders [1 ]).isInstanceOf (TestExecuteListenerProvider .class );
150
177
assertThat (dsl .configuration ().visitListenerProviders ()).containsExactly (visitListenerProvider );
151
178
assertThat (dsl .configuration ().transactionListenerProviders ())
152
179
.containsExactly (transactionListenerProvider );
0 commit comments