github.com/niedbalski/juju@v0.0.0-20190215020005-8ff100488e47/worker/caasoperator/localstate_test.go (about) 1 // Copyright 2018 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package caasoperator_test 5 6 import ( 7 "path/filepath" 8 9 jc "github.com/juju/testing/checkers" 10 gc "gopkg.in/check.v1" 11 "gopkg.in/juju/charm.v6" 12 13 "github.com/juju/juju/worker/caasoperator" 14 ) 15 16 type LocalStateFileSuite struct{} 17 18 var _ = gc.Suite(&LocalStateFileSuite{}) 19 20 func (s *LocalStateFileSuite) TestState(c *gc.C) { 21 path := filepath.Join(c.MkDir(), "operator") 22 file := caasoperator.NewStateFile(path) 23 _, err := file.Read() 24 c.Assert(err, gc.Equals, caasoperator.ErrNoStateFile) 25 26 localSt := caasoperator.LocalState{ 27 CharmURL: charm.MustParseURL("cs:quantal/application-name-123"), 28 CharmModifiedVersion: 123, 29 } 30 err = file.Write(&localSt) 31 c.Assert(err, jc.ErrorIsNil) 32 st, err := file.Read() 33 c.Assert(err, jc.ErrorIsNil) 34 c.Assert(st, jc.DeepEquals, &localSt) 35 }