github.com/Pankov404/juju@v0.0.0-20150703034450-be266991dceb/worker/uniter/runner/jujuc/testing/unit.go (about)

     1  // Copyright 2015 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  	"gopkg.in/juju/charm.v5"
     9  )
    10  
    11  // Unit holds the values for the hook context.
    12  type Unit struct {
    13  	Name           string
    14  	OwnerTag       string
    15  	ConfigSettings charm.Settings
    16  }
    17  
    18  // ContextUnit is a test double for jujuc.ContextUnit.
    19  type ContextUnit struct {
    20  	contextBase
    21  	info *Unit
    22  }
    23  
    24  // UnitName implements jujuc.ContextUnit.
    25  func (c *ContextUnit) UnitName() string {
    26  	c.stub.AddCall("UnitName")
    27  	c.stub.NextErr()
    28  
    29  	return c.info.Name
    30  }
    31  
    32  // OwnerTag implements jujuc.ContextUnit.
    33  func (c *ContextUnit) OwnerTag() string {
    34  	c.stub.AddCall("OwnerTag")
    35  	c.stub.NextErr()
    36  
    37  	return c.info.OwnerTag
    38  }
    39  
    40  // ConfigSettings implements jujuc.ContextUnit.
    41  func (c *ContextUnit) ConfigSettings() (charm.Settings, error) {
    42  	c.stub.AddCall("ConfigSettings")
    43  	if err := c.stub.NextErr(); err != nil {
    44  		return nil, errors.Trace(err)
    45  	}
    46  
    47  	return c.info.ConfigSettings, nil
    48  }