100 lines
1.9 KiB
Go
100 lines
1.9 KiB
Go
package azurekeyvault
|
|
|
|
import (
|
|
"os"
|
|
"path/filepath"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
"golang.org/x/net/http/httpproxy"
|
|
)
|
|
|
|
func TestConfigValidate_invalid(t *testing.T) {
|
|
tenantID := "tenantID"
|
|
clientID := "clientID"
|
|
url := "https://example.com"
|
|
|
|
cp, err := os.CreateTemp("", "")
|
|
require.NoError(t, err)
|
|
err = cp.Close()
|
|
require.NoError(t, err)
|
|
certPath := cp.Name()
|
|
|
|
t.Cleanup(func() {
|
|
os.Remove(certPath)
|
|
})
|
|
|
|
tt := map[string]*Config{
|
|
"empty": {},
|
|
"no tenant id": {
|
|
TenantID: "",
|
|
ClientID: clientID,
|
|
URL: url,
|
|
CertificatePath: certPath,
|
|
},
|
|
"no client id": {
|
|
TenantID: tenantID,
|
|
ClientID: "",
|
|
URL: url,
|
|
CertificatePath: certPath,
|
|
},
|
|
"no url": {
|
|
TenantID: tenantID,
|
|
ClientID: clientID,
|
|
URL: "",
|
|
CertificatePath: certPath,
|
|
},
|
|
"no jwt and no cert path": {
|
|
TenantID: tenantID,
|
|
ClientID: clientID,
|
|
URL: url,
|
|
CertificatePath: "",
|
|
},
|
|
"invalid proxy": {
|
|
TenantID: tenantID,
|
|
ClientID: clientID,
|
|
URL: url,
|
|
CertificatePath: certPath,
|
|
Proxy: &httpproxy.Config{},
|
|
},
|
|
}
|
|
|
|
for name, cfg := range tt {
|
|
t.Run(name, func(t *testing.T) {
|
|
err := cfg.Validate()
|
|
require.Error(t, err)
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestValidate_valid(t *testing.T) {
|
|
tenantID := "tenantID"
|
|
clientID := "clientID"
|
|
url := "https://example.com"
|
|
|
|
certPath, err := filepath.Abs("testdata/server.crt")
|
|
require.NoError(t, err)
|
|
|
|
tt := map[string]*Config{
|
|
"with cert": {
|
|
TenantID: tenantID,
|
|
ClientID: clientID,
|
|
URL: url,
|
|
CertificatePath: certPath,
|
|
},
|
|
"without proxy": {
|
|
TenantID: tenantID,
|
|
ClientID: clientID,
|
|
URL: url,
|
|
CertificatePath: certPath,
|
|
},
|
|
}
|
|
|
|
for name, cfg := range tt {
|
|
t.Run(name, func(t *testing.T) {
|
|
err := cfg.Validate()
|
|
require.NoError(t, err)
|
|
})
|
|
}
|
|
}
|