@@ -41,7 +41,6 @@ func TestConfigFromEnv(t *testing.T) {
4141 {
4242 TestName : "Minimal config" ,
4343 env : map [string ]string {
44- "HOSTNAME" : "minimal-config" ,
4544 "MQ_NATIVE_HA_INSTANCE_0_NAME" : "minimal-config-instance0" ,
4645 "MQ_NATIVE_HA_INSTANCE_1_NAME" : "minimal-config-instance1" ,
4746 "MQ_NATIVE_HA_INSTANCE_2_NAME" : "minimal-config-instance2" ,
@@ -50,7 +49,6 @@ func TestConfigFromEnv(t *testing.T) {
5049 "MQ_NATIVE_HA_INSTANCE_2_REPLICATION_ADDRESS" : "minimal-config-instance2(9145)" ,
5150 },
5251 expected : haConfig {
53- Name : "minimal-config" ,
5452 Instances : [3 ]haInstance {
5553 {"minimal-config-instance0" , "minimal-config-instance0(9145)" },
5654 {"minimal-config-instance1" , "minimal-config-instance1(9145)" },
@@ -61,7 +59,6 @@ func TestConfigFromEnv(t *testing.T) {
6159 {
6260 TestName : "Full TLS config" ,
6361 env : map [string ]string {
64- "HOSTNAME" : "tls-config" ,
6562 "MQ_NATIVE_HA_INSTANCE_0_NAME" : "tls-config-instance0" ,
6663 "MQ_NATIVE_HA_INSTANCE_1_NAME" : "tls-config-instance1" ,
6764 "MQ_NATIVE_HA_INSTANCE_2_NAME" : "tls-config-instance2" ,
@@ -77,7 +74,6 @@ func TestConfigFromEnv(t *testing.T) {
7774 fips : asRef (false ),
7875 },
7976 expected : haConfig {
80- Name : "tls-config" ,
8177 Instances : [3 ]haInstance {
8278 {"tls-config-instance0" , "tls-config-instance0(9145)" },
8379 {"tls-config-instance1" , "tls-config-instance1(9145)" },
@@ -95,7 +91,6 @@ func TestConfigFromEnv(t *testing.T) {
9591 {
9692 TestName : "Group TLS (live plain) config" ,
9793 env : map [string ]string {
98- "HOSTNAME" : "group-live-plain-config" ,
9994 "MQ_NATIVE_HA_INSTANCE_0_NAME" : "group-live-plain-config0" ,
10095 "MQ_NATIVE_HA_INSTANCE_1_NAME" : "group-live-plain-config1" ,
10196 "MQ_NATIVE_HA_INSTANCE_2_NAME" : "group-live-plain-config2" ,
@@ -118,7 +113,6 @@ func TestConfigFromEnv(t *testing.T) {
118113 fips : asRef (false ),
119114 },
120115 expected : haConfig {
121- Name : "group-live-plain-config" ,
122116 Instances : [3 ]haInstance {
123117 {"group-live-plain-config0" , "group-live-plain-config0(9145)" },
124118 {"group-live-plain-config1" , "group-live-plain-config1(9145)" },
@@ -168,6 +162,10 @@ func TestConfigFromEnv(t *testing.T) {
168162 t .Fatalf ("Failed to create test logger: %s" , err .Error ())
169163 }
170164
165+ if ! envConfigPresent () {
166+ t .Fatalf ("Check for Native HA config by environment variable unexpectedly reported false" )
167+ }
168+
171169 // Load config from env
172170 cfg , err := loadConfigFromEnv (testLogger )
173171 t .Log (logBuffer .String ())
@@ -185,6 +183,62 @@ func TestConfigFromEnv(t *testing.T) {
185183 }
186184}
187185
186+ func TestCheckEnv (t * testing.T ) {
187+ tests := []struct {
188+ name string
189+ env map [string ]string
190+ expect bool
191+ }{
192+ {
193+ name : "empty env" ,
194+ expect : false ,
195+ },
196+ {
197+ name : "Native HA with external config" ,
198+ env : map [string ]string {
199+ "HOSTNAME" : "external-config" ,
200+ "MQ_NATIVE_HA" : "true" ,
201+ },
202+ expect : false ,
203+ },
204+ {
205+ name : "Native HA with env config" ,
206+ env : map [string ]string {
207+ "MQ_NATIVE_HA" : "true" ,
208+ "MQ_NATIVE_HA_INSTANCE_0_NAME" : "minimal-config-instance0" ,
209+ "MQ_NATIVE_HA_INSTANCE_1_NAME" : "minimal-config-instance1" ,
210+ "MQ_NATIVE_HA_INSTANCE_2_NAME" : "minimal-config-instance2" ,
211+ "MQ_NATIVE_HA_INSTANCE_0_REPLICATION_ADDRESS" : "minimal-config-instance0(9145)" ,
212+ "MQ_NATIVE_HA_INSTANCE_1_REPLICATION_ADDRESS" : "minimal-config-instance1(9145)" ,
213+ "MQ_NATIVE_HA_INSTANCE_2_REPLICATION_ADDRESS" : "minimal-config-instance2(9145)" ,
214+ },
215+ expect : true ,
216+ },
217+ }
218+ for _ , test := range tests {
219+ t .Run (test .name , func (t * testing.T ) {
220+ // Set environment for test
221+ savedEnv := make ([]string , len (os .Environ ()))
222+ copy (savedEnv , os .Environ ())
223+ defer func () {
224+ os .Clearenv ()
225+ for _ , env := range savedEnv {
226+ parts := strings .SplitN (env , "=" , 2 )
227+ os .Setenv (parts [0 ], parts [1 ])
228+ }
229+ }()
230+ for key , value := range test .env {
231+ os .Setenv (key , value )
232+ }
233+
234+ actual := envConfigPresent ()
235+ if actual != test .expect {
236+ t .Fatalf ("Incorrect result from environment variable check (actual: %v != expected: %v)" , actual , test .expect )
237+ }
238+ })
239+ }
240+ }
241+
188242func TestTemplatingFromConfig (t * testing.T ) {
189243 tests := []struct {
190244 TestName string
@@ -332,7 +386,6 @@ func TestTemplatingFromConfig(t *testing.T) {
332386
333387func applyTestDefaults (testConfig haConfig ) haConfig {
334388 baseName := "test-config"
335- setIfBlank (& testConfig .Name , baseName )
336389 for i := 0 ; i < 3 ; i ++ {
337390 instName := fmt .Sprintf ("%s-instance%d" , baseName , i )
338391 replAddress := fmt .Sprintf ("%s(9145)" , instName )
0 commit comments