github.com/wallyworld/juju@v0.0.0-20161013125918-6cf1bc9d917a/worker/uniter/runner/jujuc/testing/version.go (about)

     1  // Copyright 2016 Canonical Ltd.
     2  // Licensed under the AGPLv3, see LICENCE file for details.
     3  
     4  package testing
     5  
     6  import (
     7  	"github.com/juju/errors"
     8  )
     9  
    10  // Version holds values for the hook context.
    11  type Version struct {
    12  	WorkloadVersion string
    13  }
    14  
    15  // ContextVersion is a test double for jujuc.ContextVersion.
    16  type ContextVersion struct {
    17  	contextBase
    18  	info *Version
    19  }
    20  
    21  // UnitWorkloadVersion implements jujuc.ContextVersion.
    22  func (c *ContextVersion) UnitWorkloadVersion() (string, error) {
    23  	c.stub.AddCall("UnitWorkloadVersion")
    24  	if err := c.stub.NextErr(); err != nil {
    25  		return "", errors.Trace(err)
    26  	}
    27  	return c.info.WorkloadVersion, nil
    28  }
    29  
    30  // SetUnitWorkloadVersion implements jujuc.ContextVersion.
    31  func (c *ContextVersion) SetUnitWorkloadVersion(version string) error {
    32  	c.stub.AddCall("SetUnitWorkloadVersion", version)
    33  	if err := c.stub.NextErr(); err != nil {
    34  		return errors.Trace(err)
    35  	}
    36  	c.info.WorkloadVersion = version
    37  	return nil
    38  }