github.com/niedbalski/juju@v0.0.0-20190215020005-8ff100488e47/jujuclient/jujuclienttesting/simple.go (about)

     1  // Copyright 2018 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  
     4  package jujuclienttesting
     5  
     6  import (
     7  	"github.com/juju/juju/core/model"
     8  	jc "github.com/juju/testing/checkers"
     9  	gc "gopkg.in/check.v1"
    10  
    11  	"github.com/juju/juju/jujuclient"
    12  )
    13  
    14  // MinimalStore returns a simple store that can be used
    15  // with CLI commands under test.
    16  func MinimalStore() *jujuclient.MemStore {
    17  	store := jujuclient.NewMemStore()
    18  	store.CurrentControllerName = "arthur"
    19  	store.Controllers["arthur"] = jujuclient.ControllerDetails{}
    20  	store.Models["arthur"] = &jujuclient.ControllerModels{
    21  		CurrentModel: "king/sword",
    22  		Models: map[string]jujuclient.ModelDetails{"king/sword": {
    23  			ModelType:       model.IAAS,
    24  			ModelGeneration: model.GenerationCurrent,
    25  		}},
    26  	}
    27  	store.Accounts["arthur"] = jujuclient.AccountDetails{
    28  		User: "king",
    29  	}
    30  	return store
    31  }
    32  
    33  // SetupMinimalFileStore creates a minimal file backed Juju
    34  // ClientStore in the current XDG Juju directory.
    35  func SetupMinimalFileStore(c *gc.C) {
    36  	store := MinimalStore()
    37  	err := jujuclient.WriteControllersFile(&jujuclient.Controllers{
    38  		Controllers:       store.Controllers,
    39  		CurrentController: store.CurrentControllerName,
    40  	})
    41  	c.Assert(err, jc.ErrorIsNil)
    42  	err = jujuclient.WriteModelsFile(store.Models)
    43  	c.Assert(err, jc.ErrorIsNil)
    44  	err = jujuclient.WriteAccountsFile(store.Accounts)
    45  	c.Assert(err, jc.ErrorIsNil)
    46  }