expected:`conoha: failed to create client: failed to login: HTTP request failed with status code 401: {"unauthorized":{"message":"Invalid user: api_username","code":401}}`,
},
{
desc:"missing credentials",
envVars:map[string]string{
"CONOHA_TENANT_ID":"",
"CONOHA_API_USERNAME":"",
"CONOHA_API_PASSWORD":"",
},
expected:"conoha: some credentials information are missing: CONOHA_TENANT_ID,CONOHA_API_USERNAME,CONOHA_API_PASSWORD",
},
{
desc:"missing tenant id",
envVars:map[string]string{
"CONOHA_TENANT_ID":"",
"CONOHA_API_USERNAME":"api_username",
"CONOHA_API_PASSWORD":"api_password",
},
expected:"conoha: some credentials information are missing: CONOHA_TENANT_ID",
},
{
desc:"missing api username",
envVars:map[string]string{
"CONOHA_TENANT_ID":"tenant_id",
"CONOHA_API_USERNAME":"",
"CONOHA_API_PASSWORD":"api_password",
},
expected:"conoha: some credentials information are missing: CONOHA_API_USERNAME",
},
{
desc:"missing api password",
envVars:map[string]string{
"CONOHA_TENANT_ID":"tenant_id",
"CONOHA_API_USERNAME":"api_username",
"CONOHA_API_PASSWORD":"",
},
expected:"conoha: some credentials information are missing: CONOHA_API_PASSWORD",
},
}
for_,test:=rangetestCases{
t.Run(test.desc,func(t*testing.T){
deferenvTest.RestoreEnv()
envTest.ClearEnv()
envTest.Apply(test.envVars)
p,err:=NewDNSProvider()
iflen(test.expected)==0{
require.NoError(t,err)
require.NotNil(t,p)
require.NotNil(t,p.config)
}else{
require.EqualError(t,err,test.expected)
}
})
}
}
funcTestNewDNSProviderConfig(t*testing.T){
testCases:=[]struct{
descstring
expectedstring
tenantstring
usernamestring
passwordstring
}{
{
desc:"complete credentials, but login failed",
expected:`conoha: failed to create client: failed to login: HTTP request failed with status code 401: {"unauthorized":{"message":"Invalid user: api_username","code":401}}`,
tenant:"tenant_id",
username:"api_username",
password:"api_password",
},
{
desc:"missing credentials",
expected:"conoha: some credentials information are missing",
},
{
desc:"missing tenant id",
expected:"conoha: some credentials information are missing",
username:"api_username",
password:"api_password",
},
{
desc:"missing api username",
expected:"conoha: some credentials information are missing",
tenant:"tenant_id",
password:"api_password",
},
{
desc:"missing api password",
expected:"conoha: some credentials information are missing",