github.com/niedbalski/juju@v0.0.0-20190215020005-8ff100488e47/cmd/juju/caas/export_test.go (about) 1 // Copyright 2018 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package caas 5 6 import ( 7 "bytes" 8 "io" 9 10 "github.com/juju/cmd" 11 12 "github.com/juju/juju/caas/kubernetes/clientconfig" 13 jujucmdcloud "github.com/juju/juju/cmd/juju/cloud" 14 "github.com/juju/juju/cmd/modelcmd" 15 "github.com/juju/juju/jujuclient" 16 ) 17 18 func NewAddCAASCommandForTest( 19 cloudMetadataStore CloudMetadataStore, 20 fileCredentialStore jujuclient.CredentialStore, 21 clientStore jujuclient.ClientStore, 22 addCloudAPIFunc func() (AddCloudAPI, error), 23 brokerGetter BrokerGetter, 24 k8sCluster k8sCluster, 25 newClientConfigReaderFunc func(string) (clientconfig.ClientConfigFunc, error), 26 getAllCloudDetails func() (map[string]*jujucmdcloud.CloudDetails, error), 27 ) cmd.Command { 28 cmd := &AddCAASCommand{ 29 cloudMetadataStore: cloudMetadataStore, 30 fileCredentialStore: fileCredentialStore, 31 addCloudAPIFunc: addCloudAPIFunc, 32 brokerGetter: brokerGetter, 33 k8sCluster: k8sCluster, 34 newClientConfigReader: newClientConfigReaderFunc, 35 getAllCloudDetails: getAllCloudDetails, 36 } 37 cmd.SetClientStore(clientStore) 38 return modelcmd.WrapController(cmd) 39 } 40 41 func NewRemoveCAASCommandForTest( 42 cloudMetadataStore CloudMetadataStore, 43 fileCredentialStore jujuclient.CredentialStore, 44 clientStore jujuclient.ClientStore, 45 removeCloudAPIFunc func() (RemoveCloudAPI, error), 46 ) cmd.Command { 47 cmd := &RemoveCAASCommand{ 48 cloudMetadataStore: cloudMetadataStore, 49 fileCredentialStore: fileCredentialStore, 50 apiFunc: removeCloudAPIFunc, 51 } 52 cmd.SetClientStore(clientStore) 53 return modelcmd.WrapController(cmd) 54 } 55 56 type K8sBrokerRegionLister = k8sBrokerRegionLister 57 58 type fakeCluster struct { 59 CommandRunner 60 61 cloudType string 62 config string 63 } 64 65 type readerCloser struct { 66 io.Reader 67 } 68 69 func (*readerCloser) Close() error { 70 return nil 71 } 72 73 func (f *fakeCluster) getKubeConfig(p *clusterParams) (io.ReadCloser, string, error) { 74 return &readerCloser{bytes.NewBuffer([]byte(f.config))}, "the-cluster", nil 75 } 76 77 func (*fakeCluster) interactiveParams(ctx *cmd.Context, p *clusterParams) (*clusterParams, error) { 78 return p, nil 79 } 80 81 func (f *fakeCluster) cloud() string { 82 return f.cloudType 83 } 84 85 func FakeCluster(config string) k8sCluster { 86 return &fakeCluster{config: config, cloudType: "gce"} 87 }