Co-authored-by: hashicorp-copywrite[bot] <110428419+hashicorp-copywrite[bot]@users.noreply.github.com>
124 lines
3.3 KiB
Go
124 lines
3.3 KiB
Go
// Copyright IBM Corp. 2024, 2026
|
|
// SPDX-License-Identifier: MPL-2.0
|
|
|
|
package credential
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func Test_getOpts(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
t.Run("WithCredentialsConfig", func(t *testing.T) {
|
|
c := &Config{
|
|
ProjectId: "test",
|
|
ClientEmail: "test",
|
|
}
|
|
opts, err := getOpts(WithCredentialsConfig(c))
|
|
require.NoError(t, err)
|
|
testOpts := getDefaultOptions()
|
|
testOpts.WithCredentialsConfig = c
|
|
require.Equal(t, opts, testOpts)
|
|
})
|
|
t.Run("WithCredsLastRotatedTime", func(t *testing.T) {
|
|
opts, err := getOpts()
|
|
require.NoError(t, err)
|
|
require.Empty(t, opts.WithCredsLastRotatedTime)
|
|
|
|
tm := time.Now()
|
|
opts, err = getOpts(WithCredsLastRotatedTime(tm))
|
|
require.NoError(t, err)
|
|
testOpts := getDefaultOptions()
|
|
testOpts.WithCredsLastRotatedTime = tm
|
|
require.Equal(t, opts, testOpts)
|
|
})
|
|
t.Run("WithClientEmail", func(t *testing.T) {
|
|
opts, err := getOpts()
|
|
require.NoError(t, err)
|
|
require.Empty(t, opts.WithClientEmail)
|
|
|
|
email := "test"
|
|
opts, err = getOpts(WithClientEmail(email))
|
|
require.NoError(t, err)
|
|
testOpts := getDefaultOptions()
|
|
testOpts.WithClientEmail = email
|
|
require.Equal(t, opts, testOpts)
|
|
})
|
|
t.Run("WithProjectId", func(t *testing.T) {
|
|
opts, err := getOpts()
|
|
require.NoError(t, err)
|
|
require.Empty(t, opts.WithProjectId)
|
|
|
|
projectID := "test"
|
|
opts, err = getOpts(WithProjectId(projectID))
|
|
require.NoError(t, err)
|
|
testOpts := getDefaultOptions()
|
|
testOpts.WithProjectId = projectID
|
|
require.Equal(t, opts, testOpts)
|
|
})
|
|
t.Run("WithTargetServiceAccountId", func(t *testing.T) {
|
|
opts, err := getOpts()
|
|
require.NoError(t, err)
|
|
require.Empty(t, opts.WithTargetServiceAccountId)
|
|
|
|
serviceAccountID := "test"
|
|
opts, err = getOpts(WithTargetServiceAccountId(serviceAccountID))
|
|
require.NoError(t, err)
|
|
testOpts := getDefaultOptions()
|
|
testOpts.WithTargetServiceAccountId = serviceAccountID
|
|
require.Equal(t, opts, testOpts)
|
|
})
|
|
t.Run("WithZone", func(t *testing.T) {
|
|
opts, err := getOpts()
|
|
require.NoError(t, err)
|
|
require.Empty(t, opts.WithZone)
|
|
|
|
zone := "test"
|
|
opts, err = getOpts(WithZone(zone))
|
|
require.NoError(t, err)
|
|
testOpts := getDefaultOptions()
|
|
testOpts.WithZone = zone
|
|
require.Equal(t, opts, testOpts)
|
|
})
|
|
t.Run("WithPrivateKey", func(t *testing.T) {
|
|
opts, err := getOpts()
|
|
require.NoError(t, err)
|
|
require.Empty(t, opts.WithPrivateKey)
|
|
|
|
privateKey := "test"
|
|
opts, err = getOpts(WithPrivateKey(privateKey))
|
|
require.NoError(t, err)
|
|
testOpts := getDefaultOptions()
|
|
testOpts.WithPrivateKey = privateKey
|
|
require.Equal(t, opts, testOpts)
|
|
})
|
|
t.Run("WithPrivateKeyId", func(t *testing.T) {
|
|
opts, err := getOpts()
|
|
require.NoError(t, err)
|
|
require.Empty(t, opts.WithPrivateKeyId)
|
|
|
|
privateKeyID := "test"
|
|
opts, err = getOpts(WithPrivateKeyId(privateKeyID))
|
|
require.NoError(t, err)
|
|
testOpts := getDefaultOptions()
|
|
testOpts.WithPrivateKeyId = privateKeyID
|
|
require.Equal(t, opts, testOpts)
|
|
})
|
|
t.Run("WithScopes", func(t *testing.T) {
|
|
opts, err := getOpts()
|
|
require.NoError(t, err)
|
|
require.Equal(t, []string{defaultGCPScope}, opts.WithScopes)
|
|
|
|
scopes := []string{"test"}
|
|
opts, err = getOpts(WithScopes(scopes))
|
|
require.NoError(t, err)
|
|
testOpts := getDefaultOptions()
|
|
testOpts.WithScopes = scopes
|
|
require.Equal(t, opts, testOpts)
|
|
})
|
|
}
|