@@ -29,6 +29,89 @@ class ObjectConfigPropertyManyInstancesTest {
2929
3030 // Normal scenarios
3131
32+ @ SuppressWarnings ("OptionalGetWithoutIsPresent" )
33+ @ Test
34+ void testMultipleInstancesWithSamePrefix () {
35+ when (configSource .loadConfig ())
36+ .thenReturn (
37+ toConfigProps (
38+ mapBuilder ()
39+ .put ("com.acme.accessKey" , "access" )
40+ .put ("com.acme.secretKey" , "secret" )
41+ .
put (
"com.acme.emailFrom" ,
"[email protected] " )
42+ .put ("com.acme.connectUrl" , "protocol://admi@admin?connecthere" )
43+ .build ()));
44+ ConfigRegistryImpl configRegistry = newConfigRegistry (configSource );
45+
46+ MailSettings mailPropertyFoo =
47+ configRegistry .objectProperty ("com.acme" , MailSettings .class ).value ().get ();
48+ ConnectorSettings connectorPropertyFoo =
49+ configRegistry .objectProperty ("com.acme" , ConnectorSettings .class ).value ().get ();
50+
51+ assertEquals ("access" , mailPropertyFoo .accessKey );
52+ assertEquals ("secret" , mailPropertyFoo .secretKey );
53+ assertEquals (
"[email protected] " ,
mailPropertyFoo .
emailFrom );
54+
55+ assertEquals ("access" , connectorPropertyFoo .accessKey );
56+ assertEquals ("secret" , connectorPropertyFoo .secretKey );
57+ assertEquals ("protocol://admi@admin?connecthere" , connectorPropertyFoo .connectUrl );
58+
59+ MailSettings mailPropertyBar =
60+ configRegistry .objectProperty ("com.acme" , MailSettings .class ).value ().get ();
61+ ConnectorSettings connectorPropertyBar =
62+ configRegistry .objectProperty ("com.acme" , ConnectorSettings .class ).value ().get ();
63+
64+ assertEquals ("access" , mailPropertyBar .accessKey );
65+ assertEquals ("secret" , mailPropertyBar .secretKey );
66+ assertEquals (
"[email protected] " ,
mailPropertyBar .
emailFrom );
67+
68+ assertEquals ("access" , connectorPropertyBar .accessKey );
69+ assertEquals ("secret" , connectorPropertyBar .secretKey );
70+ assertEquals ("protocol://admi@admin?connecthere" , connectorPropertyBar .connectUrl );
71+ }
72+
73+ @ SuppressWarnings ("OptionalGetWithoutIsPresent" )
74+ @ Test
75+ void testMultipleInstancesWithDifferentPrefix () {
76+ when (configSource .loadConfig ())
77+ .thenReturn (
78+ toConfigProps (
79+ mapBuilder ()
80+ // default prefix
81+ .put ("com.acme.accessKey" , "access" )
82+ .put ("com.acme.secretKey" , "secret" )
83+ .
put (
"com.acme.emailFrom" ,
"[email protected] " )
84+ // backup prefix
85+ .put ("com.acme.backup.accessKey" , "access_backup" )
86+ .put ("com.acme.backup.secretKey" , "secret_backup" )
87+ .
put (
"com.acme.backup.emailFrom" ,
"[email protected] _backup" )
88+ // primary prefix
89+ .put ("com.acme.primary.accessKey" , "access_primary" )
90+ .put ("com.acme.primary.secretKey" , "secret_primary" )
91+ .
put (
"com.acme.primary.emailFrom" ,
"[email protected] _primary" )
92+ .build ()));
93+ ConfigRegistryImpl configRegistry = newConfigRegistry (configSource );
94+
95+ MailSettings mailPropertyDefault =
96+ configRegistry .objectProperty ("com.acme" , MailSettings .class ).value ().get ();
97+ MailSettings mailPropertyBackup =
98+ configRegistry .objectProperty ("com.acme.backup" , MailSettings .class ).value ().get ();
99+ MailSettings mailPropertyPrimary =
100+ configRegistry .objectProperty ("com.acme.primary" , MailSettings .class ).value ().get ();
101+
102+ assertEquals ("access" , mailPropertyDefault .accessKey );
103+ assertEquals ("secret" , mailPropertyDefault .secretKey );
104+ assertEquals (
"[email protected] " ,
mailPropertyDefault .
emailFrom );
105+
106+ assertEquals ("access_backup" , mailPropertyBackup .accessKey );
107+ assertEquals ("secret_backup" , mailPropertyBackup .secretKey );
108+ assertEquals (
"[email protected] _backup" ,
mailPropertyBackup .
emailFrom );
109+
110+ assertEquals ("access_primary" , mailPropertyPrimary .accessKey );
111+ assertEquals ("secret_primary" , mailPropertyPrimary .secretKey );
112+ assertEquals (
"[email protected] _primary" ,
mailPropertyPrimary .
emailFrom );
113+ }
114+
32115 @ Test
33116 void testValueNullInitially () {
34117 when (configSource .loadConfig ()).thenReturn (toConfigProps (mapBuilder ().build ()));
0 commit comments