mirror of https://github.com/hashicorp/consul
53 lines
1.3 KiB
Go
53 lines
1.3 KiB
Go
// Copyright (c) HashiCorp, Inc.
|
|
// SPDX-License-Identifier: BUSL-1.1
|
|
|
|
package scada
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/hashicorp/consul/agent/hcp/config"
|
|
"github.com/hashicorp/go-hclog"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestUpdateHCPConfig(t *testing.T) {
|
|
for name, tc := range map[string]struct {
|
|
cfg config.CloudConfig
|
|
expectedErr string
|
|
}{
|
|
"Success": {
|
|
cfg: config.CloudConfig{
|
|
ResourceID: "organization/85702e73-8a3d-47dc-291c-379b783c5804/project/8c0547c0-10e8-1ea2-dffe-384bee8da634/hashicorp.consul.global-network-manager.cluster/test",
|
|
ClientID: "test",
|
|
ClientSecret: "test",
|
|
},
|
|
},
|
|
"Empty": {
|
|
cfg: config.CloudConfig{},
|
|
expectedErr: "could not parse resource: unexpected number of tokens 1",
|
|
},
|
|
"InvalidResource": {
|
|
cfg: config.CloudConfig{
|
|
ResourceID: "invalid",
|
|
},
|
|
expectedErr: "could not parse resource: unexpected number of tokens 1",
|
|
},
|
|
} {
|
|
t.Run(name, func(t *testing.T) {
|
|
// Create a provider
|
|
p, err := New(hclog.NewNullLogger())
|
|
require.NoError(t, err)
|
|
|
|
// Update the provider
|
|
err = p.UpdateHCPConfig(tc.cfg)
|
|
if tc.expectedErr != "" {
|
|
require.Error(t, err)
|
|
require.Contains(t, err.Error(), tc.expectedErr)
|
|
return
|
|
}
|
|
require.NoError(t, err)
|
|
})
|
|
}
|
|
}
|