Skip to content

Commit

Permalink
feat(resource): support update of "btp_globalaccount_resource_provider"
Browse files Browse the repository at this point in the history
Resolves #103
  • Loading branch information
kuntzed committed Jul 27, 2023
1 parent 57f5054 commit d0970cc
Show file tree
Hide file tree
Showing 5 changed files with 1,500 additions and 14 deletions.
15 changes: 13 additions & 2 deletions internal/btpcli/facade_accounts_resource_provider.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ func (f *accountsResourceProviderFacade) Get(ctx context.Context, provider strin
}))
}

type GlobalaccountResourceProviderCreateInput struct {
type GlobalaccountResourceProviderCreateUpdateInput struct {
Provider string `btpcli:"provider"`
TechnicalName string `btpcli:"technicalName"`
DisplayName string `btpcli:"displayName"`
Expand All @@ -42,7 +42,7 @@ type GlobalaccountResourceProviderCreateInput struct {
Globalaccount string `btpcli:"globalAccount"`
}

func (f *accountsResourceProviderFacade) Create(ctx context.Context, args GlobalaccountResourceProviderCreateInput) (provisioning.ResourceProviderResponseObject, CommandResponse, error) {
func (f *accountsResourceProviderFacade) Create(ctx context.Context, args GlobalaccountResourceProviderCreateUpdateInput) (provisioning.ResourceProviderResponseObject, CommandResponse, error) {
args.Globalaccount = f.cliClient.GetGlobalAccountSubdomain()
params, err := tfutils.ToBTPCLIParamsMap(args)

Expand All @@ -53,6 +53,17 @@ func (f *accountsResourceProviderFacade) Create(ctx context.Context, args Global
return doExecute[provisioning.ResourceProviderResponseObject](f.cliClient, ctx, NewCreateRequest(f.getCommand(), params))
}

func (f *accountsResourceProviderFacade) Update(ctx context.Context, args GlobalaccountResourceProviderCreateUpdateInput) (provisioning.ResourceProviderResponseObject, CommandResponse, error) {
args.Globalaccount = f.cliClient.GetGlobalAccountSubdomain()
params, err := tfutils.ToBTPCLIParamsMap(args)

if err != nil {
return provisioning.ResourceProviderResponseObject{}, CommandResponse{}, err
}

return doExecute[provisioning.ResourceProviderResponseObject](f.cliClient, ctx, NewUpdateRequest(f.getCommand(), params))
}

func (f *accountsResourceProviderFacade) Delete(ctx context.Context, provider string, technicalName string) (provisioning.ResourceProviderResponseObject, CommandResponse, error) {
return doExecute[provisioning.ResourceProviderResponseObject](f.cliClient, ctx, NewDeleteRequest(f.getCommand(), map[string]string{
"globalAccount": f.cliClient.GetGlobalAccountSubdomain(),
Expand Down
44 changes: 42 additions & 2 deletions internal/btpcli/facade_accounts_resource_provider_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -65,8 +65,8 @@ func TestAccountsResourceProviderFacade_Create(t *testing.T) {

provider := "AWS"
technicalName := "my_id"
description := "my-description"
displayName := "My display name"
description := "my-description"
configuration := "{}"

t.Run("constructs the CLI params correctly", func(t *testing.T) {
Expand All @@ -79,14 +79,54 @@ func TestAccountsResourceProviderFacade_Create(t *testing.T) {
"globalAccount": "795b53bb-a3f0-4769-adf0-26173282a975",
"provider": provider,
"technicalName": technicalName,
"displayName": displayName,
"description": description,
"configurationInfo": configuration,
})
}))
defer srv.Close()

_, res, err := uut.Accounts.ResourceProvider.Create(context.TODO(), GlobalaccountResourceProviderCreateUpdateInput{
Provider: provider,
TechnicalName: technicalName,
Description: description,
DisplayName: displayName,
Configuration: configuration,
})

if assert.True(t, srvCalled) && assert.NoError(t, err) {
assert.Equal(t, 200, res.StatusCode)
}
})
}

func TestAccountsResourceProviderFacade_Update(t *testing.T) {
command := "accounts/resource-provider"

provider := "AWS"
technicalName := "my_id"
displayName := "My display name"
description := "my-description"
configuration := "{}"

t.Run("constructs the CLI params correctly", func(t *testing.T) {
var srvCalled bool

uut, srv := prepareClientFacadeForTest(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
srvCalled = true

assertCall(t, r, command, ActionUpdate, map[string]string{
"globalAccount": "795b53bb-a3f0-4769-adf0-26173282a975",
"provider": provider,
"technicalName": technicalName,
"displayName": displayName,
"description": description,
"configurationInfo": configuration,
})
}))
defer srv.Close()

_, res, err := uut.Accounts.ResourceProvider.Create(context.TODO(), GlobalaccountResourceProviderCreateInput{
_, res, err := uut.Accounts.ResourceProvider.Update(context.TODO(), GlobalaccountResourceProviderCreateUpdateInput{
Provider: provider,
TechnicalName: technicalName,
Description: description,
Expand Down
Loading

0 comments on commit d0970cc

Please sign in to comment.