github.com/olli-ai/jx/v2@v2.0.400-0.20210921045218-14731b4dd448/pkg/cloud/amazon/testutils/mockprovider.go (about) 1 package testutils 2 3 import ( 4 "github.com/olli-ai/jx/v2/pkg/cloud/amazon/awscli" 5 awsclitest "github.com/olli-ai/jx/v2/pkg/cloud/amazon/awscli/mocks" 6 "github.com/olli-ai/jx/v2/pkg/cloud/amazon/ec2" 7 ec2test "github.com/olli-ai/jx/v2/pkg/cloud/amazon/ec2/mocks" 8 "github.com/olli-ai/jx/v2/pkg/cloud/amazon/eks" 9 ekstest "github.com/olli-ai/jx/v2/pkg/cloud/amazon/eks/mocks" 10 "github.com/olli-ai/jx/v2/pkg/cloud/amazon/eksctl" 11 eksctltest "github.com/olli-ai/jx/v2/pkg/cloud/amazon/eksctl/mocks" 12 ) 13 14 type MockClusterProvider struct { 15 mockProviderServices 16 Region string 17 Profile string 18 } 19 20 type mockProviderServices struct { 21 ec2 *ec2test.MockEC2er 22 eks *ekstest.MockEKSer 23 eksctl *eksctltest.MockEKSCtl 24 cli *awsclitest.MockAWS 25 } 26 27 // EC2 returns an initialized instance of EC2Options 28 func (p mockProviderServices) EC2() ec2.EC2er { 29 return p.ec2 30 } 31 32 // EKSCtl returns an abstraction of the eksctl CLI 33 func (p mockProviderServices) EKSCtl() eksctl.EKSCtl { 34 return p.eksctl 35 } 36 37 // EKS returns an initialized instance of EKSClusterOptions 38 func (p mockProviderServices) EKS() eks.EKSer { 39 return p.eks 40 } 41 42 // AWSCli returns an abstraction of the AWS CLI 43 func (p mockProviderServices) AWSCli() awscli.AWS { 44 return p.cli 45 } 46 47 // NewMockProvider returns a mocked representation of cluster.Provider 48 func NewMockProvider(region string, profile string) *MockClusterProvider { 49 services := mockProviderServices{} 50 51 ec2Mock := ec2test.NewMockEC2er() 52 services.ec2 = ec2Mock 53 54 eksctlCLIMock := eksctltest.NewMockEKSCtl() 55 services.eksctl = eksctlCLIMock 56 57 eksMock := ekstest.NewMockEKSer() 58 services.eks = eksMock 59 60 awscliMock := awsclitest.NewMockAWS() 61 services.cli = awscliMock 62 63 provider := &MockClusterProvider{ 64 mockProviderServices: services, 65 Region: region, 66 Profile: profile, 67 } 68 return provider 69 }