16
16
17
17
package com .mongodb .hibernate .internal .service ;
18
18
19
+ import static org .junit .jupiter .api .Assertions .assertEquals ;
19
20
import static org .junit .jupiter .api .Assertions .assertNotSame ;
20
21
21
22
import com .mongodb .hibernate .internal .extension .service .StandardServiceRegistryScopedState ;
23
+ import com .mongodb .hibernate .service .spi .MongoConfigurationContributor ;
24
+ import java .util .ArrayList ;
25
+ import org .hibernate .boot .MetadataSources ;
22
26
import org .hibernate .boot .registry .BootstrapServiceRegistryBuilder ;
23
27
import org .hibernate .boot .registry .StandardServiceRegistryBuilder ;
28
+ import org .junit .jupiter .api .DisplayName ;
24
29
import org .junit .jupiter .api .Test ;
25
30
26
31
class StandardServiceRegistryScopedStateTests {
27
32
@ Test
28
- void differentStandardServiceRegistriesHaveDifferentStateInstances () {
33
+ void differentStandardServiceRegistriesHaveDifferentStates () {
29
34
try (var bootstrapServiceRegistry = new BootstrapServiceRegistryBuilder ().build ()) {
30
35
var standardServiceRegistryBuilder = new StandardServiceRegistryBuilder (bootstrapServiceRegistry );
31
36
try (var standardServiceRegistry1 = standardServiceRegistryBuilder .build ();
@@ -36,4 +41,29 @@ void differentStandardServiceRegistriesHaveDifferentStateInstances() {
36
41
}
37
42
}
38
43
}
44
+
45
+ @ Test
46
+ @ DisplayName (
47
+ "MongoConfigurationContributor is called once per StandardServiceRegistry, different MongoConfigurator instances passed" )
48
+ @ SuppressWarnings ("try" )
49
+ void mongoConfigurationContributorInvocationsAndMongoConfiguratorInstances () {
50
+ try (var bootstrapServiceRegistry = new BootstrapServiceRegistryBuilder ().build ()) {
51
+ var mongoConfigurators = new ArrayList <>();
52
+ MongoConfigurationContributor mongoConfigurationContributor = mongoConfigurators ::add ;
53
+ var standardServiceRegistryBuilder = new StandardServiceRegistryBuilder (bootstrapServiceRegistry )
54
+ .addService (MongoConfigurationContributor .class , mongoConfigurationContributor );
55
+ var metadataSources = new MetadataSources ();
56
+ try (var standardServiceRegistry1 = standardServiceRegistryBuilder .build ();
57
+ var sessionFactory1 = metadataSources
58
+ .buildMetadata (standardServiceRegistry1 )
59
+ .buildSessionFactory ();
60
+ var standardServiceRegistry2 = standardServiceRegistryBuilder .build ();
61
+ var sessionFactory2 = metadataSources
62
+ .buildMetadata (standardServiceRegistry2 )
63
+ .buildSessionFactory ()) {
64
+ assertEquals (2 , mongoConfigurators .size ());
65
+ assertNotSame (mongoConfigurators .get (0 ), mongoConfigurators .get (1 ));
66
+ }
67
+ }
68
+ }
39
69
}
0 commit comments