github.com/Axway/agent-sdk@v1.1.101/pkg/config/centralconfig_test.go (about) 1 package config 2 3 import ( 4 "os" 5 "testing" 6 "time" 7 8 "github.com/stretchr/testify/assert" 9 ) 10 11 func TestDiscoveryAgentConfig(t *testing.T) { 12 cfg := NewCentralConfig(DiscoveryAgent) 13 centralConfig := cfg.(*CentralConfiguration) 14 15 // Setup Auth config to ignore auth validation errors for this test 16 authCfg := centralConfig.Auth.(*AuthConfiguration) 17 authCfg.URL = "test" 18 authCfg.Realm = "Broker" 19 authCfg.ClientID = "aaaa" 20 tmpFile, _ := os.CreateTemp(".", "test*") 21 authCfg.PrivateKey = "./" + tmpFile.Name() 22 authCfg.PublicKey = "./" + tmpFile.Name() 23 24 cfgValidator, ok := cfg.(IConfigValidator) 25 assert.True(t, ok) 26 assert.NotNil(t, cfgValidator) 27 28 err := cfgValidator.ValidateCfg() 29 30 assert.NotNil(t, err) 31 assert.Equal(t, "[Error Code 1401] - error with config central.organizationID, please set and/or check its value", err.Error()) 32 33 centralConfig.TenantID = "1111" 34 err = cfgValidator.ValidateCfg() 35 36 assert.NotNil(t, err) 37 assert.Equal(t, "[Error Code 1401] - error with config central.url, please set and/or check its value", err.Error()) 38 39 centralConfig.URL = "aaa" 40 err = cfgValidator.ValidateCfg() 41 42 assert.NotNil(t, err) 43 assert.Equal(t, "[Error Code 1401] - error with config central.url, please set and/or check its value", err.Error()) 44 45 centralConfig.URL = "http://localhost:8080" 46 err = cfgValidator.ValidateCfg() 47 48 assert.NotNil(t, err) 49 assert.Equal(t, "[Error Code 1401] - error with config central.environment, please set and/or check its value", err.Error()) 50 51 centralConfig.Environment = "eee" 52 err = cfgValidator.ValidateCfg() 53 assert.NotNil(t, err) 54 assert.Equal(t, "[Error Code 1401] - error with config central.auth.url, please set and/or check its value", err.Error()) 55 authCfg.URL = "http://localhost.com:8080" 56 57 centralConfig.SingleURL = "malformed.singleURL.com" 58 err = cfgValidator.ValidateCfg() 59 assert.NotNil(t, err) 60 assert.Equal(t, "[Error Code 1401] - error with config central.singleURL, please set and/or check its value", err.Error()) 61 centralConfig.SingleURL = "https://ingestion.platform.axway.com" 62 63 centralConfig.APIServerVersion = "" 64 err = cfgValidator.ValidateCfg() 65 assert.NotNil(t, err) 66 // assert.Equal(t, "[Error Code 1401] - error with config central.apiServerVersion, please set and/or check its value", err.Error()) 67 68 centralConfig.APIServerVersion = "v1alpha1" 69 70 assert.Equal(t, centralConfig.URL+"/apis/management/v1alpha1/environments/eee/apiservices", cfg.GetServicesURL()) 71 72 centralConfig.PollInterval = 0 73 err = cfgValidator.ValidateCfg() 74 assert.NotNil(t, err) 75 assert.Equal(t, "[Error Code 1401] - error with config central.pollInterval, please set and/or check its value", err.Error()) 76 centralConfig.PollInterval = 30 77 78 centralConfig.ReportActivityFrequency = 0 79 err = cfgValidator.ValidateCfg() 80 assert.NotNil(t, err) 81 assert.Equal(t, "[Error Code 1401] - error with config central.reportActivityFrequency, please set and/or check its value", err.Error()) 82 centralConfig.ReportActivityFrequency = time.Minute 83 84 // validate mp and DOSA 85 authCfg.ClientID = "DOSA_aaaa" 86 err = cfgValidator.ValidateCfg() 87 assert.NotNil(t, err) 88 assert.Equal(t, "[Error Code 1406] - using a DOSA_* service account with Marketplace Provisioning is unsupported", err.Error()) 89 90 cleanupFiles(tmpFile.Name()) 91 } 92 93 func TestTraceabilityAgentConfig(t *testing.T) { 94 cfg := NewCentralConfig(TraceabilityAgent) 95 centralConfig := cfg.(*CentralConfiguration) 96 97 // Setup Auth config to ignore auth validation errors for this test 98 authCfg := centralConfig.Auth.(*AuthConfiguration) 99 authCfg.URL = "test" 100 authCfg.Realm = "Broker" 101 authCfg.ClientID = "aaaa" 102 tmpFile, _ := os.CreateTemp(".", "test*") 103 authCfg.PrivateKey = "./" + tmpFile.Name() 104 authCfg.PublicKey = "./" + tmpFile.Name() 105 106 cfgValidator, ok := cfg.(IConfigValidator) 107 assert.True(t, ok) 108 assert.NotNil(t, cfgValidator) 109 err := cfgValidator.ValidateCfg() 110 111 assert.NotNil(t, err) 112 assert.Equal(t, "[Error Code 1401] - error with config central.organizationID, please set and/or check its value", err.Error()) 113 114 centralConfig.TenantID = "1111" 115 err = cfgValidator.ValidateCfg() 116 117 assert.NotNil(t, err) 118 assert.Equal(t, "[Error Code 1401] - error with config central.url, please set and/or check its value", err.Error()) 119 120 centralConfig.URL = "aaa" 121 err = cfgValidator.ValidateCfg() 122 123 assert.NotNil(t, err) 124 assert.Equal(t, "[Error Code 1401] - error with config central.url, please set and/or check its value", err.Error()) 125 126 centralConfig.URL = "http://localhost.com" 127 err = cfgValidator.ValidateCfg() 128 129 assert.NotNil(t, err) 130 assert.Equal(t, "[Error Code 1401] - error with config central.deployment, please set and/or check its value", err.Error()) 131 132 centralConfig.APICDeployment = "aaa" 133 err = cfgValidator.ValidateCfg() 134 135 assert.NotNil(t, err) 136 assert.Equal(t, "[Error Code 1401] - error with config central.environment, please set and/or check its value", err.Error()) 137 138 centralConfig.Environment = "111111" 139 err = cfgValidator.ValidateCfg() 140 assert.NotNil(t, err) 141 assert.Equal(t, "[Error Code 1401] - error with config central.auth.url, please set and/or check its value", err.Error()) 142 143 authCfg.URL = "http://localhost.com:8080" 144 145 centralConfig.SingleURL = "malformed.singleURL.com" 146 err = cfgValidator.ValidateCfg() 147 assert.NotNil(t, err) 148 assert.Equal(t, "[Error Code 1401] - error with config central.singleURL, please set and/or check its value", err.Error()) 149 centralConfig.SingleURL = "https://ingestion.platform.axway.com" 150 151 centralConfig.ReportActivityFrequency = 0 152 err = cfgValidator.ValidateCfg() 153 assert.NotNil(t, err) 154 assert.Equal(t, "[Error Code 1401] - error with config central.reportActivityFrequency, please set and/or check its value", err.Error()) 155 centralConfig.ReportActivityFrequency = time.Minute 156 157 centralConfig.APIValidationCronSchedule = "" 158 err = cfgValidator.ValidateCfg() 159 assert.NotNil(t, err) 160 assert.Equal(t, "[Error Code 1401] - error with config central.apiValidationCronSchedule, please set and/or check its value", err.Error()) 161 162 centralConfig.APIValidationCronSchedule = "* * * * *" 163 err = cfgValidator.ValidateCfg() 164 assert.NotNil(t, err) 165 assert.Equal(t, "[Error Code 1401] - error with config central.apiValidationCronSchedule, please set and/or check its value", err.Error()) 166 167 centralConfig.APIValidationCronSchedule = "*/59 * * * *" 168 err = cfgValidator.ValidateCfg() 169 assert.NotNil(t, err) 170 assert.Equal(t, "[Error Code 1401] - error with config central.apiValidationCronSchedule, please set and/or check its value", err.Error()) 171 172 centralConfig.APIValidationCronSchedule = "@daily" 173 err = cfgValidator.ValidateCfg() 174 assert.Nil(t, err) 175 cleanupFiles(tmpFile.Name()) 176 } 177 178 func TestTraceabilityAgentOfflineConfig(t *testing.T) { 179 cfg := NewCentralConfig(TraceabilityAgent) 180 centralConfig := cfg.(*CentralConfiguration) 181 182 // Set to offline mode 183 centralConfig.UsageReporting.(*UsageReportingConfiguration).Offline = true 184 185 cfgValidator, ok := cfg.(IConfigValidator) 186 assert.True(t, ok) 187 assert.NotNil(t, cfgValidator) 188 err := cfgValidator.ValidateCfg() 189 190 // Environment ID is the only config needed in offline mode 191 assert.NotNil(t, err) 192 assert.Equal(t, "[Error Code 1401] - error with config central.environmentID, please set and/or check its value", err.Error()) 193 centralConfig.EnvironmentID = "abc123" 194 err = cfgValidator.ValidateCfg() 195 assert.Nil(t, err) 196 } 197 198 func TestTeamConfig(t *testing.T) { 199 cfg := NewCentralConfig(TraceabilityAgent) 200 centralConfig := cfg.(*CentralConfiguration) 201 202 // Setup Auth config to ignore auth validation errors for this test 203 authCfg := centralConfig.Auth.(*AuthConfiguration) 204 authCfg.URL = "test" 205 authCfg.Realm = "Broker" 206 authCfg.ClientID = "aaaa" 207 tmpFile, _ := os.CreateTemp(".", "test*") 208 authCfg.PrivateKey = "./" + tmpFile.Name() 209 authCfg.PublicKey = "./" + tmpFile.Name() 210 centralConfig.TenantID = "1111" 211 centralConfig.URL = "aaa" 212 centralConfig.Environment = "111111" 213 centralConfig.APICDeployment = "aaa" 214 215 // Should be nil, not yet set 216 assert.Equal(t, "", centralConfig.GetTeamID(), "Team ID was expected to be blank as it has not yet been set") 217 218 //Set it and validate 219 teamID := "abc12:34567:def89:12345:67890" 220 centralConfig.SetTeamID(teamID) 221 assert.Equal(t, teamID, centralConfig.GetTeamID(), "The Team ID was not set appropriately") 222 223 cleanupFiles(tmpFile.Name()) 224 } 225 226 func cleanupFiles(fileName string) { 227 // cleanup files 228 os.Remove("./" + fileName) 229 }