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  }