2323import jakarta .persistence .Version ;
2424
2525import static java .util .concurrent .TimeUnit .MINUTES ;
26+ import static org .assertj .core .api .Assertions .assertThat ;
2627import static org .hibernate .reactive .MyCurrentTenantIdentifierResolver .Tenant .DEFAULT ;
2728import static org .hibernate .reactive .MyCurrentTenantIdentifierResolver .Tenant .TENANT_1 ;
2829import static org .hibernate .reactive .MyCurrentTenantIdentifierResolver .Tenant .TENANT_2 ;
2930import static org .hibernate .reactive .containers .DatabaseConfiguration .DBType .POSTGRESQL ;
30- import static org .junit .jupiter .api .Assertions .assertEquals ;
31- import static org .junit .jupiter .api .Assertions .assertFalse ;
32- import static org .junit .jupiter .api .Assertions .assertNotNull ;
33- import static org .junit .jupiter .api .Assertions .assertTrue ;
3431
3532/**
3633 * This class creates multiple additional databases so that we can check that queries run
@@ -46,10 +43,8 @@ public class ReactiveMultitenantTest extends BaseReactiveTest {
4643 protected Configuration constructConfiguration () {
4744 Configuration configuration = super .constructConfiguration ();
4845 configuration .addAnnotatedClass ( GuineaPig .class );
49- configuration .setProperty (
50- AvailableSettings .MULTI_TENANT_CONNECTION_PROVIDER ,
51- "anything"
52- );//FIXME this is terrible?
46+ // FIXME this is terrible?
47+ configuration .setProperty ( AvailableSettings .MULTI_TENANT_CONNECTION_PROVIDER , "anything" );
5348 configuration .getProperties ().put ( Settings .MULTI_TENANT_IDENTIFIER_RESOLVER , TENANT_RESOLVER );
5449 // Contains the SQL scripts for the creation of the additional databases
5550 configuration .setProperty ( Settings .HBM2DDL_IMPORT_FILES , "/multitenancy-test.sql" );
@@ -61,27 +56,27 @@ protected Configuration constructConfiguration() {
6156 public void reactivePersistFindDelete (VertxTestContext context ) {
6257 TENANT_RESOLVER .setTenantIdentifier ( DEFAULT );
6358 final GuineaPig guineaPig = new GuineaPig ( 5 , "Aloi" );
64- test (
65- context ,
66- getSessionFactory (). openSession ( )
67- .thenCompose ( session -> session .withTransaction ( t -> session
68- . persist ( guineaPig )
69- . thenCompose ( v -> session .flush () )
70- . thenAccept ( v -> session .detach ( guineaPig ) )
71- .thenAccept ( v -> assertFalse ( session . contains ( guineaPig ) ) )
72- . thenCompose ( v -> session . find ( GuineaPig . class , guineaPig . getId () ) )
73- . thenAccept ( actualPig -> {
74- assertThatPigsAreEqual ( guineaPig , actualPig );
75- assertTrue ( session .contains ( actualPig ) );
76- assertFalse ( session .contains ( guineaPig ) );
77- assertEquals ( LockMode . READ , session .getLockMode ( actualPig ) );
78- session .detach ( actualPig );
79- assertFalse ( session .contains ( actualPig ) );
80- } )
81- .thenCompose ( v -> session .find ( GuineaPig .class , guineaPig .getId () ) )
82- .thenCompose ( session ::remove )
83- .thenCompose ( v -> session .flush () ) )
84- )
59+ test ( context , openSession ()
60+ . thenCompose ( session -> session
61+ . persist ( guineaPig )
62+ .thenCompose ( v -> session .flush () )
63+ . thenAccept ( v -> session . detach ( guineaPig ) )
64+ . thenAccept ( v -> assertThat ( session .contains ( guineaPig ) ). isFalse () )
65+ . thenCompose ( v -> session .find ( GuineaPig . class , guineaPig . getId () ) )
66+ .thenAccept ( actualPig -> {
67+ assertThat ( actualPig ). isNotNull ();
68+ assertThat ( actualPig . getId () ). isEqualTo ( guineaPig . getId () );
69+ assertThat ( actualPig . getName () ). isEqualTo ( guineaPig . getName () );
70+ assertThat ( session .contains ( actualPig ) ). isTrue ( );
71+ assertThat ( session .contains ( guineaPig ) ). isFalse ( );
72+ assertThat ( session .getLockMode ( actualPig ) ). isEqualTo ( LockMode . READ );
73+ session .detach ( actualPig );
74+ assertThat ( session .contains ( actualPig ) ). isFalse ( );
75+ } )
76+ .thenCompose ( v -> session .find ( GuineaPig .class , guineaPig .getId () ) )
77+ .thenCompose ( session ::remove )
78+ .thenCompose ( v -> session .flush () )
79+ )
8580 );
8681 }
8782
@@ -92,13 +87,13 @@ public void testTenantSelection(VertxTestContext context) {
9287 .thenCompose ( session -> session
9388 .createNativeQuery ( "select current_database()" )
9489 .getSingleResult ()
95- .thenAccept ( result -> assertEquals ( TENANT_1 .getDbName (), result ) ) )
90+ .thenAccept ( result -> assertThat ( result ). isEqualTo ( TENANT_1 .getDbName () ) ) )
9691 .thenAccept ( unused -> TENANT_RESOLVER .setTenantIdentifier ( TENANT_2 ) )
9792 .thenCompose ( unused -> openSession () )
9893 .thenCompose ( session -> session
9994 .createNativeQuery ( "select current_database()" )
10095 .getSingleResult ()
101- .thenAccept ( result -> assertEquals ( TENANT_2 .getDbName (), result ) ) )
96+ .thenAccept ( result -> assertThat ( result ). isEqualTo ( TENANT_2 .getDbName () ) ) )
10297 );
10398 }
10499
@@ -109,41 +104,36 @@ public void testTenantSelectionStatelessSession(VertxTestContext context) {
109104 .thenCompose ( t1Session -> t1Session
110105 .createNativeQuery ( "select current_database()" )
111106 .getSingleResult ()
112- .thenAccept ( result -> assertEquals ( TENANT_1 .getDbName (), result ) )
107+ .thenAccept ( result -> assertThat ( result ). isEqualTo ( TENANT_1 .getDbName () ) )
113108 .thenCompose ( unused -> t1Session .close () ) )
114109 .thenAccept ( unused -> TENANT_RESOLVER .setTenantIdentifier ( TENANT_2 ) )
115110 .thenCompose ( v -> getSessionFactory ().openStatelessSession () )
116111 .thenCompose ( t2Session -> t2Session
117112 .createNativeQuery ( "select current_database()" )
118113 .getSingleResult ()
119- .thenAccept ( result -> assertEquals ( TENANT_2 .getDbName (), result ) )
114+ .thenAccept ( result -> assertThat ( result ). isEqualTo ( TENANT_2 .getDbName () ) )
120115 .thenCompose ( v -> t2Session .close () ) )
121116 );
122117 }
123118
124119 @ Test
125120 public void testTenantSelectionStatelessSessionMutiny (VertxTestContext context ) {
126121 TENANT_RESOLVER .setTenantIdentifier ( TENANT_1 );
127- test ( context , getMutinySessionFactory (). withStatelessSession ( t1Session ->
128- t1Session
129- .createNativeQuery ( "select current_database()" )
130- .getSingleResult ()
131- .invoke ( result -> assertEquals ( TENANT_1 .getDbName (), result ) )
132- )
122+ test ( context , getMutinySessionFactory ()
123+ . withStatelessSession ( t1Session -> t1Session
124+ .createNativeQuery ( "select current_database()" )
125+ .getSingleResult ()
126+ .invoke ( result -> assertThat ( result ). isEqualTo ( TENANT_1 .getDbName () ) )
127+ )
133128 .invoke ( result -> TENANT_RESOLVER .setTenantIdentifier ( TENANT_2 ) )
134129 .chain ( () -> getMutinySessionFactory ().withStatelessSession ( t2Session -> t2Session
135130 .createNativeQuery ( "select current_database()" )
136131 .getSingleResult ()
137- .invoke ( result -> assertEquals ( TENANT_2 .getDbName (), result ) ) ) )
132+ .invoke ( result -> assertThat ( result ).isEqualTo ( TENANT_2 .getDbName () ) )
133+ ) )
138134 );
139135 }
140136
141- private void assertThatPigsAreEqual ( GuineaPig expected , GuineaPig actual ) {
142- assertNotNull ( actual );
143- assertEquals ( expected .getId (), actual .getId () );
144- assertEquals ( expected .getName (), actual .getName () );
145- }
146-
147137 @ Entity (name = "GuineaPig" )
148138 @ Table (name = "Pig" )
149139 public static class GuineaPig {
0 commit comments