|
4 | 4 | "context" |
5 | 5 | "errors" |
6 | 6 | "testing" |
| 7 | + "time" |
7 | 8 |
|
8 | 9 | "github.com/LeanerCloud/CUDly/internal/config" |
9 | 10 | "github.com/LeanerCloud/CUDly/pkg/common" |
@@ -631,7 +632,7 @@ func TestManager_ExecuteSinglePurchase_ServiceClientError(t *testing.T) { |
631 | 632 |
|
632 | 633 | mockStore.On("GetPurchasePlan", ctx, "plan-svc-err").Return(plan, nil) |
633 | 634 | mockFactory.On("CreateAndValidateProvider", mock.Anything, "aws", mock.Anything).Return(mockProvider, nil) |
634 | | - mockProvider.On("GetServiceClient", mock.MatchedBy(func(c context.Context) bool { _, ok := c.Deadline(); return ok }), common.ServiceRDS, "eu-west-1").Return(nil, errors.New("service client error")) |
| 635 | + mockProvider.On("GetServiceClient", mock.MatchedBy(hasPerRecDeadline(30*time.Second)), common.ServiceRDS, "eu-west-1").Return(nil, errors.New("service client error")) |
635 | 636 | mockSTS.On("GetCallerIdentity", ctx, mock.Anything).Return(nil, errors.New("sts error")) |
636 | 637 |
|
637 | 638 | manager := &Manager{ |
@@ -680,8 +681,8 @@ func TestManager_ExecuteSinglePurchase_PurchaseNotSuccessful(t *testing.T) { |
680 | 681 |
|
681 | 682 | mockStore.On("GetPurchasePlan", ctx, "plan-not-success").Return(plan, nil) |
682 | 683 | mockFactory.On("CreateAndValidateProvider", mock.Anything, "aws", mock.Anything).Return(mockProvider, nil) |
683 | | - mockProvider.On("GetServiceClient", mock.MatchedBy(func(c context.Context) bool { _, ok := c.Deadline(); return ok }), common.ServiceElastiCache, "ap-southeast-1").Return(mockServiceClient, nil) |
684 | | - mockServiceClient.On("PurchaseCommitment", mock.MatchedBy(func(c context.Context) bool { _, ok := c.Deadline(); return ok }), mock.AnythingOfType("common.Recommendation"), mock.AnythingOfType("common.PurchaseOptions")).Return( |
| 684 | + mockProvider.On("GetServiceClient", mock.MatchedBy(hasPerRecDeadline(30*time.Second)), common.ServiceElastiCache, "ap-southeast-1").Return(mockServiceClient, nil) |
| 685 | + mockServiceClient.On("PurchaseCommitment", mock.MatchedBy(hasPerRecDeadline(30*time.Second)), mock.AnythingOfType("common.Recommendation"), mock.AnythingOfType("common.PurchaseOptions")).Return( |
685 | 686 | common.PurchaseResult{Success: false}, nil, |
686 | 687 | ) |
687 | 688 | mockSTS.On("GetCallerIdentity", ctx, mock.Anything).Return(nil, errors.New("sts error")) |
@@ -733,8 +734,8 @@ func TestManager_ExecuteSinglePurchase_PurchaseNotSuccessful_WithError(t *testin |
733 | 734 | specificErr := errors.New("capacity limit exceeded") |
734 | 735 | mockStore.On("GetPurchasePlan", ctx, "plan-err-result").Return(plan, nil) |
735 | 736 | mockFactory.On("CreateAndValidateProvider", mock.Anything, "aws", mock.Anything).Return(mockProvider, nil) |
736 | | - mockProvider.On("GetServiceClient", mock.MatchedBy(func(c context.Context) bool { _, ok := c.Deadline(); return ok }), common.ServiceOpenSearch, "us-west-2").Return(mockServiceClient, nil) |
737 | | - mockServiceClient.On("PurchaseCommitment", mock.MatchedBy(func(c context.Context) bool { _, ok := c.Deadline(); return ok }), mock.AnythingOfType("common.Recommendation"), mock.AnythingOfType("common.PurchaseOptions")).Return( |
| 737 | + mockProvider.On("GetServiceClient", mock.MatchedBy(hasPerRecDeadline(30*time.Second)), common.ServiceOpenSearch, "us-west-2").Return(mockServiceClient, nil) |
| 738 | + mockServiceClient.On("PurchaseCommitment", mock.MatchedBy(hasPerRecDeadline(30*time.Second)), mock.AnythingOfType("common.Recommendation"), mock.AnythingOfType("common.PurchaseOptions")).Return( |
738 | 739 | common.PurchaseResult{Success: false, Error: specificErr}, nil, |
739 | 740 | ) |
740 | 741 | mockSTS.On("GetCallerIdentity", ctx, mock.Anything).Return(nil, errors.New("sts error")) |
@@ -789,8 +790,8 @@ func TestManager_ExecuteSinglePurchase_WithEngine(t *testing.T) { |
789 | 790 | mockStore.On("SavePurchaseHistory", ctx, mock.AnythingOfType("*config.PurchaseHistoryRecord")).Return(nil) |
790 | 791 | mockEmail.On("SendPurchaseConfirmation", ctx, mock.AnythingOfType("email.NotificationData")).Return(nil) |
791 | 792 | mockFactory.On("CreateAndValidateProvider", mock.Anything, "aws", mock.Anything).Return(mockProvider, nil) |
792 | | - mockProvider.On("GetServiceClient", mock.MatchedBy(func(c context.Context) bool { _, ok := c.Deadline(); return ok }), common.ServiceRDS, "us-east-1").Return(mockServiceClient, nil) |
793 | | - mockServiceClient.On("PurchaseCommitment", mock.MatchedBy(func(c context.Context) bool { _, ok := c.Deadline(); return ok }), mock.AnythingOfType("common.Recommendation"), mock.AnythingOfType("common.PurchaseOptions")).Return( |
| 793 | + mockProvider.On("GetServiceClient", mock.MatchedBy(hasPerRecDeadline(30*time.Second)), common.ServiceRDS, "us-east-1").Return(mockServiceClient, nil) |
| 794 | + mockServiceClient.On("PurchaseCommitment", mock.MatchedBy(hasPerRecDeadline(30*time.Second)), mock.AnythingOfType("common.Recommendation"), mock.AnythingOfType("common.PurchaseOptions")).Return( |
794 | 795 | common.PurchaseResult{Success: true, CommitmentID: "ri-engine-001"}, nil, |
795 | 796 | ) |
796 | 797 | mockSTS.On("GetCallerIdentity", ctx, mock.Anything).Return(nil, errors.New("sts error")) |
@@ -846,8 +847,8 @@ func TestManager_SavePurchaseHistory_Error(t *testing.T) { |
846 | 847 | mockStore.On("SavePurchaseHistory", ctx, mock.AnythingOfType("*config.PurchaseHistoryRecord")).Return(errors.New("history write error")) |
847 | 848 | mockEmail.On("SendPurchaseConfirmation", ctx, mock.AnythingOfType("email.NotificationData")).Return(nil) |
848 | 849 | mockFactory.On("CreateAndValidateProvider", mock.Anything, "aws", mock.Anything).Return(mockProvider, nil) |
849 | | - mockProvider.On("GetServiceClient", mock.MatchedBy(func(c context.Context) bool { _, ok := c.Deadline(); return ok }), common.ServiceEC2, "us-east-1").Return(mockServiceClient, nil) |
850 | | - mockServiceClient.On("PurchaseCommitment", mock.MatchedBy(func(c context.Context) bool { _, ok := c.Deadline(); return ok }), mock.AnythingOfType("common.Recommendation"), mock.AnythingOfType("common.PurchaseOptions")).Return( |
| 850 | + mockProvider.On("GetServiceClient", mock.MatchedBy(hasPerRecDeadline(30*time.Second)), common.ServiceEC2, "us-east-1").Return(mockServiceClient, nil) |
| 851 | + mockServiceClient.On("PurchaseCommitment", mock.MatchedBy(hasPerRecDeadline(30*time.Second)), mock.AnythingOfType("common.Recommendation"), mock.AnythingOfType("common.PurchaseOptions")).Return( |
851 | 852 | common.PurchaseResult{Success: true, CommitmentID: "ri-hist-001"}, nil, |
852 | 853 | ) |
853 | 854 | mockSTS.On("GetCallerIdentity", ctx, mock.Anything).Return(nil, errors.New("sts error")) |
@@ -1084,10 +1085,10 @@ func TestManager_ExecuteSinglePurchase_DetailsByService(t *testing.T) { |
1084 | 1085 | mockStore.On("SavePurchaseHistory", ctx, mock.AnythingOfType("*config.PurchaseHistoryRecord")).Return(nil) |
1085 | 1086 | mockEmail.On("SendPurchaseConfirmation", ctx, mock.AnythingOfType("email.NotificationData")).Return(nil) |
1086 | 1087 | mockFactory.On("CreateAndValidateProvider", mock.Anything, "aws", mock.Anything).Return(mockProvider, nil) |
1087 | | - mockProvider.On("GetServiceClient", mock.MatchedBy(func(c context.Context) bool { _, ok := c.Deadline(); return ok }), tc.serviceType, tc.region).Return(mockServiceClient, nil) |
| 1088 | + mockProvider.On("GetServiceClient", mock.MatchedBy(hasPerRecDeadline(30*time.Second)), tc.serviceType, tc.region).Return(mockServiceClient, nil) |
1088 | 1089 | mockServiceClient.On( |
1089 | 1090 | "PurchaseCommitment", |
1090 | | - mock.MatchedBy(func(c context.Context) bool { _, ok := c.Deadline(); return ok }), |
| 1091 | + mock.MatchedBy(hasPerRecDeadline(30*time.Second)), |
1091 | 1092 | mock.AnythingOfType("common.Recommendation"), |
1092 | 1093 | mock.AnythingOfType("common.PurchaseOptions"), |
1093 | 1094 | ).Run(func(args mock.Arguments) { |
@@ -1222,10 +1223,10 @@ func TestManager_ExecuteSinglePurchase_LegacyEmptyDetails(t *testing.T) { |
1222 | 1223 | mockStore.On("SavePurchaseHistory", ctx, mock.AnythingOfType("*config.PurchaseHistoryRecord")).Return(nil) |
1223 | 1224 | mockEmail.On("SendPurchaseConfirmation", ctx, mock.AnythingOfType("email.NotificationData")).Return(nil) |
1224 | 1225 | mockFactory.On("CreateAndValidateProvider", mock.Anything, "aws", mock.Anything).Return(mockProvider, nil) |
1225 | | - mockProvider.On("GetServiceClient", mock.MatchedBy(func(c context.Context) bool { _, ok := c.Deadline(); return ok }), tc.serviceType, tc.region).Return(mockServiceClient, nil) |
| 1226 | + mockProvider.On("GetServiceClient", mock.MatchedBy(hasPerRecDeadline(30*time.Second)), tc.serviceType, tc.region).Return(mockServiceClient, nil) |
1226 | 1227 | mockServiceClient.On( |
1227 | 1228 | "PurchaseCommitment", |
1228 | | - mock.MatchedBy(func(c context.Context) bool { _, ok := c.Deadline(); return ok }), |
| 1229 | + mock.MatchedBy(hasPerRecDeadline(30*time.Second)), |
1229 | 1230 | mock.AnythingOfType("common.Recommendation"), |
1230 | 1231 | mock.AnythingOfType("common.PurchaseOptions"), |
1231 | 1232 | ).Run(func(args mock.Arguments) { |
|
0 commit comments