use gomock generated mocks for the action invoke stream API

pull/37317/head
Daniel Schmidt 8 months ago
parent d0e5c3cc7b
commit a2ce38ce12

@ -2061,28 +2061,26 @@ func TestGRPCProvider_planAction_linked_provider_returns_error(t *testing.T) {
}
func TestGRPCProvider_invokeAction_unlinked_valid(t *testing.T) {
ctrl := gomock.NewController(t)
client := mockProviderClient(t)
p := &GRPCProvider{
client: client,
}
mockInvokeClient := &mockproto.MockInvokeProtoClient{
Events: []*proto.InvokeAction_Event{
{
Type: &proto.InvokeAction_Event_Progress_{
Progress: &proto.InvokeAction_Event_Progress{
Message: "Hello from the action",
},
},
},
{
Type: &proto.InvokeAction_Event_Completed_{
Completed: &proto.InvokeAction_Event_Completed{},
},
mockInvokeClient := mockproto.NewMockProvider_InvokeActionClient(ctrl)
mockInvokeClient.EXPECT().Recv().Return(&proto.InvokeAction_Event{
Type: &proto.InvokeAction_Event_Progress_{
Progress: &proto.InvokeAction_Event_Progress{
Message: "Hello from the action",
},
},
}
}, nil)
mockInvokeClient.EXPECT().Recv().Return(&proto.InvokeAction_Event{
Type: &proto.InvokeAction_Event_Completed_{
Completed: &proto.InvokeAction_Event_Completed{},
},
}, nil)
mockInvokeClient.EXPECT().Recv().Return(nil, io.EOF)
client.EXPECT().InvokeAction(
gomock.Any(),
@ -2125,38 +2123,37 @@ func TestGRPCProvider_invokeAction_unlinked_invalid(t *testing.T) {
}
func TestGRPCProvider_invokeAction_lifecycle_valid(t *testing.T) {
ctrl := gomock.NewController(t)
client := mockProviderClient(t)
p := &GRPCProvider{
client: client,
}
mockInvokeClient := &mockproto.MockInvokeProtoClient{
Events: []*proto.InvokeAction_Event{
{
Type: &proto.InvokeAction_Event_Progress_{
Progress: &proto.InvokeAction_Event_Progress{
Message: "Lifecycle progress",
},
},
mockInvokeClient := mockproto.NewMockProvider_InvokeActionClient(ctrl)
mockInvokeClient.EXPECT().Recv().Return(&proto.InvokeAction_Event{
Type: &proto.InvokeAction_Event_Progress_{
Progress: &proto.InvokeAction_Event_Progress{
Message: "Lifecycle progress",
},
{
Type: &proto.InvokeAction_Event_Completed_{
Completed: &proto.InvokeAction_Event_Completed{
LinkedResources: []*proto.InvokeAction_Event_Completed_LinkedResource{{
NewState: &proto.DynamicValue{
Msgpack: []byte("\x81\xa4attr\xa3new"),
},
NewIdentity: &proto.ResourceIdentityData{
IdentityData: &proto.DynamicValue{
Msgpack: []byte("\x81\xa7id_attr\xa2id"),
},
},
}},
},
}, nil)
mockInvokeClient.EXPECT().Recv().Return(&proto.InvokeAction_Event{
Type: &proto.InvokeAction_Event_Completed_{
Completed: &proto.InvokeAction_Event_Completed{
LinkedResources: []*proto.InvokeAction_Event_Completed_LinkedResource{{
NewState: &proto.DynamicValue{
Msgpack: []byte("\x81\xa4attr\xa3new"),
},
},
NewIdentity: &proto.ResourceIdentityData{
IdentityData: &proto.DynamicValue{
Msgpack: []byte("\x81\xa7id_attr\xa2id"),
},
},
}},
},
},
}
}, nil)
mockInvokeClient.EXPECT().Recv().Return(nil, io.EOF)
client.EXPECT().InvokeAction(
gomock.Any(),
@ -2263,28 +2260,28 @@ func TestGRPCProvider_invokeAction_lifecycle_extra_linked_resource(t *testing.T)
}
func TestGRPCProvider_invokeAction_lifecycle_provider_returns_error(t *testing.T) {
ctrl := gomock.NewController(t)
client := mockProviderClient(t)
p := &GRPCProvider{
client: client,
}
mockInvokeClient := &mockproto.MockInvokeProtoClient{
Events: []*proto.InvokeAction_Event{
{
Type: &proto.InvokeAction_Event_Completed_{
Completed: &proto.InvokeAction_Event_Completed{
Diagnostics: []*proto.Diagnostic{
{
Severity: proto.Diagnostic_ERROR,
Summary: "Provider error",
Detail: "Something went wrong",
},
},
mockInvokeClient := mockproto.NewMockProvider_InvokeActionClient(ctrl)
mockInvokeClient.EXPECT().Recv().Return(&proto.InvokeAction_Event{
Type: &proto.InvokeAction_Event_Completed_{
Completed: &proto.InvokeAction_Event_Completed{
Diagnostics: []*proto.Diagnostic{
{
Severity: proto.Diagnostic_ERROR,
Summary: "Provider error",
Detail: "Something went wrong",
},
},
},
},
}
}, nil)
mockInvokeClient.EXPECT().Recv().Return(nil, io.EOF)
client.EXPECT().InvokeAction(
gomock.Any(),
@ -2327,50 +2324,49 @@ func TestGRPCProvider_invokeAction_lifecycle_provider_returns_error(t *testing.T
}
func TestGRPCProvider_invokeAction_linked_valid(t *testing.T) {
ctrl := gomock.NewController(t)
client := mockProviderClient(t)
p := &GRPCProvider{
client: client,
}
mockInvokeClient := &mockproto.MockInvokeProtoClient{
Events: []*proto.InvokeAction_Event{
{
Type: &proto.InvokeAction_Event_Progress_{
Progress: &proto.InvokeAction_Event_Progress{
Message: "Linked progress",
},
},
mockInvokeClient := mockproto.NewMockProvider_InvokeActionClient(ctrl)
mockInvokeClient.EXPECT().Recv().Return(&proto.InvokeAction_Event{
Type: &proto.InvokeAction_Event_Progress_{
Progress: &proto.InvokeAction_Event_Progress{
Message: "Linked progress",
},
{
Type: &proto.InvokeAction_Event_Completed_{
Completed: &proto.InvokeAction_Event_Completed{
LinkedResources: []*proto.InvokeAction_Event_Completed_LinkedResource{
{
NewState: &proto.DynamicValue{
Msgpack: []byte("\x81\xa4attr\xa3new"),
},
NewIdentity: &proto.ResourceIdentityData{
IdentityData: &proto.DynamicValue{
Msgpack: []byte("\x81\xa7id_attr\xa2id"),
},
},
},
}, nil)
mockInvokeClient.EXPECT().Recv().Return(&proto.InvokeAction_Event{
Type: &proto.InvokeAction_Event_Completed_{
Completed: &proto.InvokeAction_Event_Completed{
LinkedResources: []*proto.InvokeAction_Event_Completed_LinkedResource{
{
NewState: &proto.DynamicValue{
Msgpack: []byte("\x81\xa4attr\xa3new"),
},
NewIdentity: &proto.ResourceIdentityData{
IdentityData: &proto.DynamicValue{
Msgpack: []byte("\x81\xa7id_attr\xa2id"),
},
{
NewState: &proto.DynamicValue{
Msgpack: []byte("\x81\xa4attr\xa4new2"),
},
NewIdentity: &proto.ResourceIdentityData{
IdentityData: &proto.DynamicValue{
Msgpack: []byte("\x81\xa7id_attr\xa3id2"),
},
},
},
},
{
NewState: &proto.DynamicValue{
Msgpack: []byte("\x81\xa4attr\xa4new2"),
},
NewIdentity: &proto.ResourceIdentityData{
IdentityData: &proto.DynamicValue{
Msgpack: []byte("\x81\xa7id_attr\xa3id2"),
},
},
},
},
},
},
}
}, nil)
mockInvokeClient.EXPECT().Recv().Return(nil, io.EOF)
client.EXPECT().InvokeAction(
gomock.Any(),
@ -2520,28 +2516,28 @@ func TestGRPCProvider_invokeAction_linked_too_many_linked_resources(t *testing.T
}
func TestGRPCProvider_invokeAction_linked_provider_returns_error(t *testing.T) {
ctrl := gomock.NewController(t)
client := mockProviderClient(t)
p := &GRPCProvider{
client: client,
}
mockInvokeClient := &mockproto.MockInvokeProtoClient{
Events: []*proto.InvokeAction_Event{
{
Type: &proto.InvokeAction_Event_Completed_{
Completed: &proto.InvokeAction_Event_Completed{
Diagnostics: []*proto.Diagnostic{
{
Severity: proto.Diagnostic_ERROR,
Summary: "Provider error",
Detail: "Something went wrong",
},
},
mockInvokeClient := mockproto.NewMockProvider_InvokeActionClient(ctrl)
mockInvokeClient.EXPECT().Recv().Return(&proto.InvokeAction_Event{
Type: &proto.InvokeAction_Event_Completed_{
Completed: &proto.InvokeAction_Event_Completed{
Diagnostics: []*proto.Diagnostic{
{
Severity: proto.Diagnostic_ERROR,
Summary: "Provider error",
Detail: "Something went wrong",
},
},
},
},
}
}, nil)
mockInvokeClient.EXPECT().Recv().Return(nil, io.EOF)
client.EXPECT().InvokeAction(
gomock.Any(),

@ -1,50 +0,0 @@
// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: BUSL-1.1
package mock_tfplugin5
import (
context "context"
"io"
proto "github.com/hashicorp/terraform/internal/tfplugin5"
metadata "google.golang.org/grpc/metadata"
)
var _ proto.Provider_InvokeActionClient = (*MockInvokeProtoClient)(nil)
type MockInvokeProtoClient struct {
Events []*proto.InvokeAction_Event
}
func (m *MockInvokeProtoClient) Recv() (*proto.InvokeAction_Event, error) {
if len(m.Events) == 0 {
return nil, io.EOF
}
event := m.Events[0]
m.Events = m.Events[1:]
return event, nil
}
func (m *MockInvokeProtoClient) CloseSend() error {
return nil
}
func (m *MockInvokeProtoClient) Context() context.Context {
return context.TODO()
}
func (m *MockInvokeProtoClient) Header() (metadata.MD, error) {
return nil, nil
}
func (m *MockInvokeProtoClient) RecvMsg(k any) error {
return nil
}
func (m *MockInvokeProtoClient) SendMsg(k any) error {
return nil
}
func (m *MockInvokeProtoClient) Trailer() metadata.MD {
return nil
}

@ -1,6 +1,6 @@
// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: BUSL-1.1
//go:generate go tool go.uber.org/mock/mockgen -destination mock.go github.com/hashicorp/terraform/internal/tfplugin5 ProviderClient,ProvisionerClient,Provisioner_ProvisionResourceClient,Provisioner_ProvisionResourceServer
//go:generate go tool go.uber.org/mock/mockgen -destination mock.go github.com/hashicorp/terraform/internal/tfplugin5 ProviderClient,ProvisionerClient,Provisioner_ProvisionResourceClient,Provisioner_ProvisionResourceServer,Provider_InvokeActionClient
package mock_tfplugin5

@ -1,9 +1,9 @@
// Code generated by MockGen. DO NOT EDIT.
// Source: github.com/hashicorp/terraform/internal/tfplugin5 (interfaces: ProviderClient,ProvisionerClient,Provisioner_ProvisionResourceClient,Provisioner_ProvisionResourceServer)
// Source: github.com/hashicorp/terraform/internal/tfplugin5 (interfaces: ProviderClient,ProvisionerClient,Provisioner_ProvisionResourceClient,Provisioner_ProvisionResourceServer,Provider_InvokeActionClient)
//
// Generated by this command:
//
// mockgen -destination mock.go github.com/hashicorp/terraform/internal/tfplugin5 ProviderClient,ProvisionerClient,Provisioner_ProvisionResourceClient,Provisioner_ProvisionResourceServer
// mockgen -destination mock.go github.com/hashicorp/terraform/internal/tfplugin5 ProviderClient,ProvisionerClient,Provisioner_ProvisionResourceClient,Provisioner_ProvisionResourceServer,Provider_InvokeActionClient
//
// Package mock_tfplugin5 is a generated GoMock package.
@ -906,3 +906,126 @@ func (mr *MockProvisioner_ProvisionResourceServerMockRecorder) SetTrailer(arg0 a
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetTrailer", reflect.TypeOf((*MockProvisioner_ProvisionResourceServer)(nil).SetTrailer), arg0)
}
// MockProvider_InvokeActionClient is a mock of Provider_InvokeActionClient interface.
type MockProvider_InvokeActionClient struct {
ctrl *gomock.Controller
recorder *MockProvider_InvokeActionClientMockRecorder
}
// MockProvider_InvokeActionClientMockRecorder is the mock recorder for MockProvider_InvokeActionClient.
type MockProvider_InvokeActionClientMockRecorder struct {
mock *MockProvider_InvokeActionClient
}
// NewMockProvider_InvokeActionClient creates a new mock instance.
func NewMockProvider_InvokeActionClient(ctrl *gomock.Controller) *MockProvider_InvokeActionClient {
mock := &MockProvider_InvokeActionClient{ctrl: ctrl}
mock.recorder = &MockProvider_InvokeActionClientMockRecorder{mock}
return mock
}
// EXPECT returns an object that allows the caller to indicate expected use.
func (m *MockProvider_InvokeActionClient) EXPECT() *MockProvider_InvokeActionClientMockRecorder {
return m.recorder
}
// CloseSend mocks base method.
func (m *MockProvider_InvokeActionClient) CloseSend() error {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "CloseSend")
ret0, _ := ret[0].(error)
return ret0
}
// CloseSend indicates an expected call of CloseSend.
func (mr *MockProvider_InvokeActionClientMockRecorder) CloseSend() *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CloseSend", reflect.TypeOf((*MockProvider_InvokeActionClient)(nil).CloseSend))
}
// Context mocks base method.
func (m *MockProvider_InvokeActionClient) Context() context.Context {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "Context")
ret0, _ := ret[0].(context.Context)
return ret0
}
// Context indicates an expected call of Context.
func (mr *MockProvider_InvokeActionClientMockRecorder) Context() *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Context", reflect.TypeOf((*MockProvider_InvokeActionClient)(nil).Context))
}
// Header mocks base method.
func (m *MockProvider_InvokeActionClient) Header() (metadata.MD, error) {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "Header")
ret0, _ := ret[0].(metadata.MD)
ret1, _ := ret[1].(error)
return ret0, ret1
}
// Header indicates an expected call of Header.
func (mr *MockProvider_InvokeActionClientMockRecorder) Header() *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Header", reflect.TypeOf((*MockProvider_InvokeActionClient)(nil).Header))
}
// Recv mocks base method.
func (m *MockProvider_InvokeActionClient) Recv() (*tfplugin5.InvokeAction_Event, error) {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "Recv")
ret0, _ := ret[0].(*tfplugin5.InvokeAction_Event)
ret1, _ := ret[1].(error)
return ret0, ret1
}
// Recv indicates an expected call of Recv.
func (mr *MockProvider_InvokeActionClientMockRecorder) Recv() *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Recv", reflect.TypeOf((*MockProvider_InvokeActionClient)(nil).Recv))
}
// RecvMsg mocks base method.
func (m *MockProvider_InvokeActionClient) RecvMsg(arg0 any) error {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "RecvMsg", arg0)
ret0, _ := ret[0].(error)
return ret0
}
// RecvMsg indicates an expected call of RecvMsg.
func (mr *MockProvider_InvokeActionClientMockRecorder) RecvMsg(arg0 any) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RecvMsg", reflect.TypeOf((*MockProvider_InvokeActionClient)(nil).RecvMsg), arg0)
}
// SendMsg mocks base method.
func (m *MockProvider_InvokeActionClient) SendMsg(arg0 any) error {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "SendMsg", arg0)
ret0, _ := ret[0].(error)
return ret0
}
// SendMsg indicates an expected call of SendMsg.
func (mr *MockProvider_InvokeActionClientMockRecorder) SendMsg(arg0 any) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SendMsg", reflect.TypeOf((*MockProvider_InvokeActionClient)(nil).SendMsg), arg0)
}
// Trailer mocks base method.
func (m *MockProvider_InvokeActionClient) Trailer() metadata.MD {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "Trailer")
ret0, _ := ret[0].(metadata.MD)
return ret0
}
// Trailer indicates an expected call of Trailer.
func (mr *MockProvider_InvokeActionClientMockRecorder) Trailer() *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Trailer", reflect.TypeOf((*MockProvider_InvokeActionClient)(nil).Trailer))
}

@ -2350,28 +2350,26 @@ func TestGRPCProvider_planAction_linked_provider_returns_error(t *testing.T) {
}
func TestGRPCProvider_invokeAction_unlinked_valid(t *testing.T) {
ctrl := gomock.NewController(t)
client := mockProviderClient(t)
p := &GRPCProvider{
client: client,
}
mockInvokeClient := &mockproto.MockInvokeProtoClient{
Events: []*proto.InvokeAction_Event{
{
Type: &proto.InvokeAction_Event_Progress_{
Progress: &proto.InvokeAction_Event_Progress{
Message: "Hello from the action",
},
},
},
{
Type: &proto.InvokeAction_Event_Completed_{
Completed: &proto.InvokeAction_Event_Completed{},
},
mockInvokeClient := mockproto.NewMockProvider_InvokeActionClient(ctrl)
mockInvokeClient.EXPECT().Recv().Return(&proto.InvokeAction_Event{
Type: &proto.InvokeAction_Event_Progress_{
Progress: &proto.InvokeAction_Event_Progress{
Message: "Hello from the action",
},
},
}
}, nil)
mockInvokeClient.EXPECT().Recv().Return(&proto.InvokeAction_Event{
Type: &proto.InvokeAction_Event_Completed_{
Completed: &proto.InvokeAction_Event_Completed{},
},
}, nil)
mockInvokeClient.EXPECT().Recv().Return(nil, io.EOF)
client.EXPECT().InvokeAction(
gomock.Any(),
@ -2414,38 +2412,37 @@ func TestGRPCProvider_invokeAction_unlinked_invalid(t *testing.T) {
}
func TestGRPCProvider_invokeAction_lifecycle_valid(t *testing.T) {
ctrl := gomock.NewController(t)
client := mockProviderClient(t)
p := &GRPCProvider{
client: client,
}
mockInvokeClient := &mockproto.MockInvokeProtoClient{
Events: []*proto.InvokeAction_Event{
{
Type: &proto.InvokeAction_Event_Progress_{
Progress: &proto.InvokeAction_Event_Progress{
Message: "Lifecycle progress",
},
},
mockInvokeClient := mockproto.NewMockProvider_InvokeActionClient(ctrl)
mockInvokeClient.EXPECT().Recv().Return(&proto.InvokeAction_Event{
Type: &proto.InvokeAction_Event_Progress_{
Progress: &proto.InvokeAction_Event_Progress{
Message: "Lifecycle progress",
},
{
Type: &proto.InvokeAction_Event_Completed_{
Completed: &proto.InvokeAction_Event_Completed{
LinkedResources: []*proto.InvokeAction_Event_Completed_LinkedResource{{
NewState: &proto.DynamicValue{
Msgpack: []byte("\x81\xa4attr\xa3new"),
},
NewIdentity: &proto.ResourceIdentityData{
IdentityData: &proto.DynamicValue{
Msgpack: []byte("\x81\xa7id_attr\xa2id"),
},
},
}},
},
}, nil)
mockInvokeClient.EXPECT().Recv().Return(&proto.InvokeAction_Event{
Type: &proto.InvokeAction_Event_Completed_{
Completed: &proto.InvokeAction_Event_Completed{
LinkedResources: []*proto.InvokeAction_Event_Completed_LinkedResource{{
NewState: &proto.DynamicValue{
Msgpack: []byte("\x81\xa4attr\xa3new"),
},
},
NewIdentity: &proto.ResourceIdentityData{
IdentityData: &proto.DynamicValue{
Msgpack: []byte("\x81\xa7id_attr\xa2id"),
},
},
}},
},
},
}
}, nil)
mockInvokeClient.EXPECT().Recv().Return(nil, io.EOF)
client.EXPECT().InvokeAction(
gomock.Any(),
@ -2552,28 +2549,28 @@ func TestGRPCProvider_invokeAction_lifecycle_extra_linked_resource(t *testing.T)
}
func TestGRPCProvider_invokeAction_lifecycle_provider_returns_error(t *testing.T) {
ctrl := gomock.NewController(t)
client := mockProviderClient(t)
p := &GRPCProvider{
client: client,
}
mockInvokeClient := &mockproto.MockInvokeProtoClient{
Events: []*proto.InvokeAction_Event{
{
Type: &proto.InvokeAction_Event_Completed_{
Completed: &proto.InvokeAction_Event_Completed{
Diagnostics: []*proto.Diagnostic{
{
Severity: proto.Diagnostic_ERROR,
Summary: "Provider error",
Detail: "Something went wrong",
},
},
mockInvokeClient := mockproto.NewMockProvider_InvokeActionClient(ctrl)
mockInvokeClient.EXPECT().Recv().Return(&proto.InvokeAction_Event{
Type: &proto.InvokeAction_Event_Completed_{
Completed: &proto.InvokeAction_Event_Completed{
Diagnostics: []*proto.Diagnostic{
{
Severity: proto.Diagnostic_ERROR,
Summary: "Provider error",
Detail: "Something went wrong",
},
},
},
},
}
}, nil)
mockInvokeClient.EXPECT().Recv().Return(nil, io.EOF)
client.EXPECT().InvokeAction(
gomock.Any(),
@ -2616,50 +2613,49 @@ func TestGRPCProvider_invokeAction_lifecycle_provider_returns_error(t *testing.T
}
func TestGRPCProvider_invokeAction_linked_valid(t *testing.T) {
ctrl := gomock.NewController(t)
client := mockProviderClient(t)
p := &GRPCProvider{
client: client,
}
mockInvokeClient := &mockproto.MockInvokeProtoClient{
Events: []*proto.InvokeAction_Event{
{
Type: &proto.InvokeAction_Event_Progress_{
Progress: &proto.InvokeAction_Event_Progress{
Message: "Linked progress",
},
},
mockInvokeClient := mockproto.NewMockProvider_InvokeActionClient(ctrl)
mockInvokeClient.EXPECT().Recv().Return(&proto.InvokeAction_Event{
Type: &proto.InvokeAction_Event_Progress_{
Progress: &proto.InvokeAction_Event_Progress{
Message: "Linked progress",
},
{
Type: &proto.InvokeAction_Event_Completed_{
Completed: &proto.InvokeAction_Event_Completed{
LinkedResources: []*proto.InvokeAction_Event_Completed_LinkedResource{
{
NewState: &proto.DynamicValue{
Msgpack: []byte("\x81\xa4attr\xa3new"),
},
NewIdentity: &proto.ResourceIdentityData{
IdentityData: &proto.DynamicValue{
Msgpack: []byte("\x81\xa7id_attr\xa2id"),
},
},
},
}, nil)
mockInvokeClient.EXPECT().Recv().Return(&proto.InvokeAction_Event{
Type: &proto.InvokeAction_Event_Completed_{
Completed: &proto.InvokeAction_Event_Completed{
LinkedResources: []*proto.InvokeAction_Event_Completed_LinkedResource{
{
NewState: &proto.DynamicValue{
Msgpack: []byte("\x81\xa4attr\xa3new"),
},
NewIdentity: &proto.ResourceIdentityData{
IdentityData: &proto.DynamicValue{
Msgpack: []byte("\x81\xa7id_attr\xa2id"),
},
{
NewState: &proto.DynamicValue{
Msgpack: []byte("\x81\xa4attr\xa4new2"),
},
NewIdentity: &proto.ResourceIdentityData{
IdentityData: &proto.DynamicValue{
Msgpack: []byte("\x81\xa7id_attr\xa3id2"),
},
},
},
},
{
NewState: &proto.DynamicValue{
Msgpack: []byte("\x81\xa4attr\xa4new2"),
},
NewIdentity: &proto.ResourceIdentityData{
IdentityData: &proto.DynamicValue{
Msgpack: []byte("\x81\xa7id_attr\xa3id2"),
},
},
},
},
},
},
}
}, nil)
mockInvokeClient.EXPECT().Recv().Return(nil, io.EOF)
client.EXPECT().InvokeAction(
gomock.Any(),
@ -2809,28 +2805,28 @@ func TestGRPCProvider_invokeAction_linked_too_many_linked_resources(t *testing.T
}
func TestGRPCProvider_invokeAction_linked_provider_returns_error(t *testing.T) {
ctrl := gomock.NewController(t)
client := mockProviderClient(t)
p := &GRPCProvider{
client: client,
}
mockInvokeClient := &mockproto.MockInvokeProtoClient{
Events: []*proto.InvokeAction_Event{
{
Type: &proto.InvokeAction_Event_Completed_{
Completed: &proto.InvokeAction_Event_Completed{
Diagnostics: []*proto.Diagnostic{
{
Severity: proto.Diagnostic_ERROR,
Summary: "Provider error",
Detail: "Something went wrong",
},
},
mockInvokeClient := mockproto.NewMockProvider_InvokeActionClient(ctrl)
mockInvokeClient.EXPECT().Recv().Return(&proto.InvokeAction_Event{
Type: &proto.InvokeAction_Event_Completed_{
Completed: &proto.InvokeAction_Event_Completed{
Diagnostics: []*proto.Diagnostic{
{
Severity: proto.Diagnostic_ERROR,
Summary: "Provider error",
Detail: "Something went wrong",
},
},
},
},
}
}, nil)
mockInvokeClient.EXPECT().Recv().Return(nil, io.EOF)
client.EXPECT().InvokeAction(
gomock.Any(),

@ -1,50 +0,0 @@
// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: BUSL-1.1
package mock_tfplugin6
import (
context "context"
"io"
proto "github.com/hashicorp/terraform/internal/tfplugin6"
metadata "google.golang.org/grpc/metadata"
)
var _ proto.Provider_InvokeActionClient = (*MockInvokeProtoClient)(nil)
type MockInvokeProtoClient struct {
Events []*proto.InvokeAction_Event
}
func (m *MockInvokeProtoClient) Recv() (*proto.InvokeAction_Event, error) {
if len(m.Events) == 0 {
return nil, io.EOF
}
event := m.Events[0]
m.Events = m.Events[1:]
return event, nil
}
func (m *MockInvokeProtoClient) CloseSend() error {
return nil
}
func (m *MockInvokeProtoClient) Context() context.Context {
return context.TODO()
}
func (m *MockInvokeProtoClient) Header() (metadata.MD, error) {
return nil, nil
}
func (m *MockInvokeProtoClient) RecvMsg(k any) error {
return nil
}
func (m *MockInvokeProtoClient) SendMsg(k any) error {
return nil
}
func (m *MockInvokeProtoClient) Trailer() metadata.MD {
return nil
}

@ -1,6 +1,6 @@
// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: BUSL-1.1
//go:generate go tool go.uber.org/mock/mockgen -destination mock.go github.com/hashicorp/terraform/internal/tfplugin6 ProviderClient
//go:generate go tool go.uber.org/mock/mockgen -destination mock.go github.com/hashicorp/terraform/internal/tfplugin6 ProviderClient,Provider_InvokeActionClient
package mock_tfplugin6

@ -1,9 +1,9 @@
// Code generated by MockGen. DO NOT EDIT.
// Source: github.com/hashicorp/terraform/internal/tfplugin6 (interfaces: ProviderClient)
// Source: github.com/hashicorp/terraform/internal/tfplugin6 (interfaces: ProviderClient,Provider_InvokeActionClient)
//
// Generated by this command:
//
// mockgen -destination mock.go github.com/hashicorp/terraform/internal/tfplugin6 ProviderClient
// mockgen -destination mock.go github.com/hashicorp/terraform/internal/tfplugin6 ProviderClient,Provider_InvokeActionClient
//
// Package mock_tfplugin6 is a generated GoMock package.
@ -16,6 +16,7 @@ import (
tfplugin6 "github.com/hashicorp/terraform/internal/tfplugin6"
gomock "go.uber.org/mock/gomock"
grpc "google.golang.org/grpc"
metadata "google.golang.org/grpc/metadata"
)
// MockProviderClient is a mock of ProviderClient interface.
@ -640,3 +641,126 @@ func (mr *MockProviderClientMockRecorder) ValidateStateStoreConfig(arg0, arg1 an
varargs := append([]any{arg0, arg1}, arg2...)
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ValidateStateStoreConfig", reflect.TypeOf((*MockProviderClient)(nil).ValidateStateStoreConfig), varargs...)
}
// MockProvider_InvokeActionClient is a mock of Provider_InvokeActionClient interface.
type MockProvider_InvokeActionClient struct {
ctrl *gomock.Controller
recorder *MockProvider_InvokeActionClientMockRecorder
}
// MockProvider_InvokeActionClientMockRecorder is the mock recorder for MockProvider_InvokeActionClient.
type MockProvider_InvokeActionClientMockRecorder struct {
mock *MockProvider_InvokeActionClient
}
// NewMockProvider_InvokeActionClient creates a new mock instance.
func NewMockProvider_InvokeActionClient(ctrl *gomock.Controller) *MockProvider_InvokeActionClient {
mock := &MockProvider_InvokeActionClient{ctrl: ctrl}
mock.recorder = &MockProvider_InvokeActionClientMockRecorder{mock}
return mock
}
// EXPECT returns an object that allows the caller to indicate expected use.
func (m *MockProvider_InvokeActionClient) EXPECT() *MockProvider_InvokeActionClientMockRecorder {
return m.recorder
}
// CloseSend mocks base method.
func (m *MockProvider_InvokeActionClient) CloseSend() error {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "CloseSend")
ret0, _ := ret[0].(error)
return ret0
}
// CloseSend indicates an expected call of CloseSend.
func (mr *MockProvider_InvokeActionClientMockRecorder) CloseSend() *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CloseSend", reflect.TypeOf((*MockProvider_InvokeActionClient)(nil).CloseSend))
}
// Context mocks base method.
func (m *MockProvider_InvokeActionClient) Context() context.Context {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "Context")
ret0, _ := ret[0].(context.Context)
return ret0
}
// Context indicates an expected call of Context.
func (mr *MockProvider_InvokeActionClientMockRecorder) Context() *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Context", reflect.TypeOf((*MockProvider_InvokeActionClient)(nil).Context))
}
// Header mocks base method.
func (m *MockProvider_InvokeActionClient) Header() (metadata.MD, error) {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "Header")
ret0, _ := ret[0].(metadata.MD)
ret1, _ := ret[1].(error)
return ret0, ret1
}
// Header indicates an expected call of Header.
func (mr *MockProvider_InvokeActionClientMockRecorder) Header() *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Header", reflect.TypeOf((*MockProvider_InvokeActionClient)(nil).Header))
}
// Recv mocks base method.
func (m *MockProvider_InvokeActionClient) Recv() (*tfplugin6.InvokeAction_Event, error) {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "Recv")
ret0, _ := ret[0].(*tfplugin6.InvokeAction_Event)
ret1, _ := ret[1].(error)
return ret0, ret1
}
// Recv indicates an expected call of Recv.
func (mr *MockProvider_InvokeActionClientMockRecorder) Recv() *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Recv", reflect.TypeOf((*MockProvider_InvokeActionClient)(nil).Recv))
}
// RecvMsg mocks base method.
func (m *MockProvider_InvokeActionClient) RecvMsg(arg0 any) error {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "RecvMsg", arg0)
ret0, _ := ret[0].(error)
return ret0
}
// RecvMsg indicates an expected call of RecvMsg.
func (mr *MockProvider_InvokeActionClientMockRecorder) RecvMsg(arg0 any) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RecvMsg", reflect.TypeOf((*MockProvider_InvokeActionClient)(nil).RecvMsg), arg0)
}
// SendMsg mocks base method.
func (m *MockProvider_InvokeActionClient) SendMsg(arg0 any) error {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "SendMsg", arg0)
ret0, _ := ret[0].(error)
return ret0
}
// SendMsg indicates an expected call of SendMsg.
func (mr *MockProvider_InvokeActionClientMockRecorder) SendMsg(arg0 any) *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SendMsg", reflect.TypeOf((*MockProvider_InvokeActionClient)(nil).SendMsg), arg0)
}
// Trailer mocks base method.
func (m *MockProvider_InvokeActionClient) Trailer() metadata.MD {
m.ctrl.T.Helper()
ret := m.ctrl.Call(m, "Trailer")
ret0, _ := ret[0].(metadata.MD)
return ret0
}
// Trailer indicates an expected call of Trailer.
func (mr *MockProvider_InvokeActionClientMockRecorder) Trailer() *gomock.Call {
mr.mock.ctrl.T.Helper()
return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Trailer", reflect.TypeOf((*MockProvider_InvokeActionClient)(nil).Trailer))
}

Loading…
Cancel
Save