Documentation
¶
Index ¶
- Constants
- type Intermediate
- type Mock
- func (svc *Mock) BadGoto(ctx context.Context) (graph *workflow.Graph, err error)
- func (svc *Mock) BadGotoer(ctx context.Context, flow *workflow.Flow) (stamp bool, err error)
- func (svc *Mock) Goto(ctx context.Context) (graph *workflow.Graph, err error)
- func (svc *Mock) MockBadGoto(handler func(ctx context.Context, flow *workflow.Flow) (stamp bool, err error)) *Mock
- func (svc *Mock) MockBadGotoer(handler func(ctx context.Context, flow *workflow.Flow) (stamp bool, err error)) *Mock
- func (svc *Mock) MockGoto(...) *Mock
- func (svc *Mock) MockTaskA(...) *Mock
- func (svc *Mock) MockTaskB(...) *Mock
- func (svc *Mock) MockTaskC(...) *Mock
- func (svc *Mock) OnShutdown(ctx context.Context) (err error)
- func (svc *Mock) OnStartup(ctx context.Context) (err error)
- func (svc *Mock) TaskA(ctx context.Context, flow *workflow.Flow, loops int) (loopsOut int, err error)
- func (svc *Mock) TaskB(ctx context.Context, flow *workflow.Flow, loops int, target int) (visited bool, err error)
- func (svc *Mock) TaskC(ctx context.Context, flow *workflow.Flow, loops int) (finalLoops int, err error)
- type Service
- func (svc *Service) BadGoto(ctx context.Context) (graph *workflow.Graph, err error)
- func (svc *Service) BadGotoer(ctx context.Context, flow *workflow.Flow) (stamp bool, err error)
- func (svc *Service) Goto(ctx context.Context) (graph *workflow.Graph, err error)
- func (svc *Service) Init(initializer func(svc *Service) (err error)) *Service
- func (svc *Service) OnShutdown(ctx context.Context) (err error)
- func (svc *Service) OnStartup(ctx context.Context) (err error)
- func (svc *Service) TaskA(ctx context.Context, flow *workflow.Flow, loops int) (loopsOut int, err error)
- func (svc *Service) TaskB(ctx context.Context, flow *workflow.Flow, loops int, target int) (visited bool, err error)
- func (svc *Service) TaskC(ctx context.Context, flow *workflow.Flow, loops int) (finalLoops int, err error)
- type ToDo
Constants ¶
const ( Hostname = gotoflowapi.Hostname Version = 1 )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Intermediate ¶
Intermediate extends and customizes the generic base connector.
func NewIntermediate ¶
func NewIntermediate(impl ToDo) *Intermediate
NewIntermediate creates a new instance of the intermediate.
type Mock ¶
type Mock struct {
*Intermediate
// contains filtered or unexported fields
}
Mock is a mockable version of the microservice, allowing functions, event sinks and web handlers to be mocked.
func (*Mock) BadGoto ¶
BadGoto returns the workflow graph, or a mocked graph if MockBadGoto was called.
func (*Mock) MockBadGoto ¶
func (svc *Mock) MockBadGoto(handler func(ctx context.Context, flow *workflow.Flow) (stamp bool, err error)) *Mock
MockBadGoto sets up a mock handler for the BadGoto workflow. The handler receives typed inputs from the workflow's state and returns typed outputs. A nil handler clears the mock.
func (*Mock) MockBadGotoer ¶
func (svc *Mock) MockBadGotoer(handler func(ctx context.Context, flow *workflow.Flow) (stamp bool, err error)) *Mock
MockBadGotoer sets up a mock handler for BadGotoer.
func (*Mock) MockGoto ¶
func (svc *Mock) MockGoto(handler func(ctx context.Context, flow *workflow.Flow, target int) (finalLoops int, err error)) *Mock
MockGoto sets up a mock handler for the Goto workflow. The handler receives typed inputs from the workflow's state and returns typed outputs. A nil handler clears the mock.
func (*Mock) MockTaskA ¶
func (svc *Mock) MockTaskA(handler func(ctx context.Context, flow *workflow.Flow, loops int) (loopsOut int, err error)) *Mock
MockTaskA sets up a mock handler for TaskA.
func (*Mock) MockTaskB ¶
func (svc *Mock) MockTaskB(handler func(ctx context.Context, flow *workflow.Flow, loops int, target int) (visited bool, err error)) *Mock
MockTaskB sets up a mock handler for TaskB.
func (*Mock) MockTaskC ¶
func (svc *Mock) MockTaskC(handler func(ctx context.Context, flow *workflow.Flow, loops int) (finalLoops int, err error)) *Mock
MockTaskC sets up a mock handler for TaskC.
func (*Mock) OnShutdown ¶
OnShutdown is called when the microservice is shut down.
func (*Mock) TaskA ¶
func (svc *Mock) TaskA(ctx context.Context, flow *workflow.Flow, loops int) (loopsOut int, err error)
TaskA executes the mock handler.
type Service ¶
type Service struct {
*Intermediate // IMPORTANT: Do not remove
}
Service implements gotoflow.verify, exercising flow.Goto and AddTransitionGoto.
func (*Service) BadGoto ¶
BadGoto defines a single-task graph whose only task issues an unregistered Goto. The flow must end with status=failed.
func (*Service) BadGotoer ¶
BadGotoer requests a goto to a target that has no AddTransitionGoto registered for it. The foreman surfaces the unregistered target as a step failure.
func (*Service) OnShutdown ¶
OnShutdown is called when the microservice is shut down.
func (*Service) TaskA ¶
func (svc *Service) TaskA(ctx context.Context, flow *workflow.Flow, loops int) (loopsOut int, err error)
TaskA increments the loops counter.
type ToDo ¶
type ToDo interface {
OnStartup(ctx context.Context) (err error)
OnShutdown(ctx context.Context) (err error)
TaskA(ctx context.Context, flow *workflow.Flow, loops int) (loopsOut int, err error) // MARKER: TaskA
TaskB(ctx context.Context, flow *workflow.Flow, loops, target int) (visited bool, err error) // MARKER: TaskB
TaskC(ctx context.Context, flow *workflow.Flow, loops int) (finalLoops int, err error) // MARKER: TaskC
BadGotoer(ctx context.Context, flow *workflow.Flow) (stamp bool, err error) // MARKER: BadGotoer
Goto(ctx context.Context) (graph *workflow.Graph, err error) // MARKER: Goto
BadGoto(ctx context.Context) (graph *workflow.Graph, err error) // MARKER: BadGoto
}
ToDo is implemented by the service or mock.