github.com/juju/juju@v0.0.0-20240430160146-1752b71fcf00/worker/uniter/runner/jujuc/jujuctesting/workloadhook.go (about) 1 // Copyright 2015 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package jujuctesting 5 6 import ( 7 "github.com/juju/errors" 8 ) 9 10 // WorkloadHook holds the values for the hook context. 11 type WorkloadHook struct { 12 WorkloadName string 13 } 14 15 // Reset clears the WorkloadHook's data. 16 func (rh *WorkloadHook) Reset() { 17 rh.WorkloadName = "" 18 } 19 20 // ContextWorkloadHook is a test double for jujuc.WorkloadHookContext. 21 type ContextWorkloadHook struct { 22 contextBase 23 info *WorkloadHook 24 } 25 26 // WorkloadName implements jujuc.WorkloadHookContext. 27 func (c *ContextWorkloadHook) WorkloadName() (string, error) { 28 c.stub.AddCall("WorkloadName") 29 err := c.stub.NextErr() 30 if c.info.WorkloadName == "" { 31 err = errors.NotFoundf("workload name") 32 } 33 34 return c.info.WorkloadName, err 35 }