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 }