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  }