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 }