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

package mockneighbors

import (
	"context"
	"testing"

	"goa.design/clue/mock"

	"douglasthrift.net/presence/neighbors"
)

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

	ARPingPingFunc  func(ctx context.Context, ifi, hw, ip string) (bool, error)
	ARPingCountFunc func(count uint)
)

func NewARPing(t *testing.T) *ARPing {
	var (
		m                  = &ARPing{mock.New(), t}
		_ neighbors.ARPing = m
	)
	return m
}

func (m *ARPing) AddPing(f ARPingPingFunc) {
	m.m.Add("Ping", f)
}

func (m *ARPing) SetPing(f ARPingPingFunc) {
	m.m.Set("Ping", f)
}

func (m *ARPing) Ping(ctx context.Context, ifi, hw, ip string) (bool, error) {
	if f := m.m.Next("Ping"); f != nil {
		return f.(ARPingPingFunc)(ctx, ifi, hw, ip)
	}
	m.t.Helper()
	m.t.Error("unexpected Ping call")
	return false, nil
}

func (m *ARPing) AddCount(f ARPingCountFunc) {
	m.m.Add("Count", f)
}

func (m *ARPing) SetCount(f ARPingCountFunc) {
	m.m.Set("Count", f)
}

func (m *ARPing) Count(count uint) {
	if f := m.m.Next("Count"); f != nil {
		f.(ARPingCountFunc)(count)
		return
	}
	m.t.Helper()
	m.t.Error("unexpected Count call")
}

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