Skip to content

Commit

Permalink
chore: Use Mockery instead of manually created mocks for encryption_a…
Browse files Browse the repository at this point in the history
…t_rest unit tests (#1786)
  • Loading branch information
oarbusi committed Dec 20, 2023
1 parent 894b6b5 commit a3f638a
Show file tree
Hide file tree
Showing 3 changed files with 76 additions and 23 deletions.
2 changes: 2 additions & 0 deletions .mockery.yaml
Expand Up @@ -7,5 +7,7 @@ mockname: "{{.InterfaceName}}"

packages:
? github.com/mongodb/terraform-provider-mongodbatlas/internal/service/searchdeployment
? github.com/mongodb/terraform-provider-mongodbatlas/internal/service/encryptionatrest
: interfaces:
DeploymentService:
EarService:
Expand Up @@ -4,7 +4,6 @@ import (
"context"
"errors"
"fmt"
"net/http"
"os"
"testing"

Expand All @@ -19,6 +18,7 @@ import (
"github.com/mongodb/terraform-provider-mongodbatlas/internal/config"
"github.com/mongodb/terraform-provider-mongodbatlas/internal/service/encryptionatrest"
"github.com/mongodb/terraform-provider-mongodbatlas/internal/testutil/acc"
"github.com/mongodb/terraform-provider-mongodbatlas/internal/testutil/mocksvc"
"github.com/mwielbut/pointy"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/mock"
Expand Down Expand Up @@ -528,10 +528,6 @@ func TestHandleAzureKeyVaultConfigDefaults(t *testing.T) {
}
}

type MockEarService struct {
mock.Mock
}

func TestResourceMongoDBAtlasEncryptionAtRestCreateRefreshFunc(t *testing.T) {
var projectID = "projectID"
testCases := []struct {
Expand Down Expand Up @@ -561,13 +557,9 @@ func TestResourceMongoDBAtlasEncryptionAtRestCreateRefreshFunc(t *testing.T) {
}
for _, tc := range testCases {
t.Run(tc.name, func(t *testing.T) {
testObject := new(MockEarService)
testObject := mocksvc.NewEarService(t)

mockedResponse := EarResponse{
encryptionAtRestResponse: tc.mockResponse,
Err: tc.mockError,
}
testObject.On("UpdateEncryptionAtRest", mock.Anything, mock.Anything, mock.Anything).Return(mockedResponse)
testObject.On("UpdateEncryptionAtRest", mock.Anything, mock.Anything, mock.Anything).Return(tc.mockResponse, nil, tc.mockError)

response, strategy, err := encryptionatrest.ResourceMongoDBAtlasEncryptionAtRestCreateRefreshFunc(context.Background(), projectID, testObject, &admin.EncryptionAtRest{})()

Expand Down Expand Up @@ -694,15 +686,3 @@ func testAccCheckMongoDBAtlasEncryptionAtRestImportStateIDFunc(resourceName stri
return rs.Primary.ID, nil
}
}

func (a *MockEarService) UpdateEncryptionAtRest(ctx context.Context, groupID string, encryptionAtRest *admin.EncryptionAtRest) (*admin.EncryptionAtRest, *http.Response, error) {
args := a.Called(ctx, groupID)
var response = args.Get(0).(EarResponse)
return response.encryptionAtRestResponse, response.HTTPResponse, response.Err
}

type EarResponse struct {
encryptionAtRestResponse *admin.EncryptionAtRest
HTTPResponse *http.Response
Err error
}
71 changes: 71 additions & 0 deletions internal/testutil/mocksvc/ear_service.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit a3f638a

Please sign in to comment.