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  }