// Code generated by Clue Mock Generator v1.1.1, DO NOT EDIT.
//
// Command:
// $ cmg gen douglasthrift.net/presence/ifttt

package mockifttt

import (
	"context"
	"testing"

	"goa.design/clue/mock"

	"douglasthrift.net/presence/ifttt"
)

type (
	Client struct {
		m *mock.Mock
		t *testing.T
	}

	ClientTriggerFunc func(ctx context.Context, present bool) (event string, values *ifttt.Values, err error)
)

func NewClient(t *testing.T) *Client {
	var (
		m              = &Client{mock.New(), t}
		_ ifttt.Client = m
	)
	return m
}

func (m *Client) AddTrigger(f ClientTriggerFunc) {
	m.m.Add("Trigger", f)
}

func (m *Client) SetTrigger(f ClientTriggerFunc) {
	m.m.Set("Trigger", f)
}

func (m *Client) Trigger(ctx context.Context, present bool) (event string, values *ifttt.Values, err error) {
	if f := m.m.Next("Trigger"); f != nil {
		return f.(ClientTriggerFunc)(ctx, present)
	}
	m.t.Helper()
	m.t.Error("unexpected Trigger call")
	return "", nil, nil
}

func (m *Client) HasMore() bool {
	return m.m.HasMore()
}