2025-04-01 10:38:02 +09:00

60 lines
2.0 KiB
Go

package fakes
import (
"context"
"github.com/grafana/grafana/pkg/apimachinery/identity"
"github.com/grafana/grafana/pkg/services/ngalert/models"
)
type ReceiverServiceMethodCall struct {
Method string
Args []interface{}
}
type FakeReceiverService struct {
MethodCalls []ReceiverServiceMethodCall
GetReceiverFn func(ctx context.Context, q models.GetReceiverQuery, u identity.Requester) (*models.Receiver, error)
ListReceiversFn func(ctx context.Context, q models.ListReceiversQuery, u identity.Requester) ([]*models.Receiver, error)
}
func NewFakeReceiverService() *FakeReceiverService {
return &FakeReceiverService{
GetReceiverFn: defaultReceiverFn,
ListReceiversFn: defaultReceiversFn,
}
}
func (f *FakeReceiverService) GetReceiver(ctx context.Context, q models.GetReceiverQuery, u identity.Requester) (*models.Receiver, error) {
f.MethodCalls = append(f.MethodCalls, ReceiverServiceMethodCall{Method: "GetReceiver", Args: []interface{}{ctx, q}})
return f.GetReceiverFn(ctx, q, u)
}
func (f *FakeReceiverService) ListReceivers(ctx context.Context, q models.ListReceiversQuery, u identity.Requester) ([]*models.Receiver, error) {
f.MethodCalls = append(f.MethodCalls, ReceiverServiceMethodCall{Method: "ListReceivers", Args: []interface{}{ctx, q}})
return f.ListReceiversFn(ctx, q, u)
}
func (f *FakeReceiverService) PopMethodCall() ReceiverServiceMethodCall {
if len(f.MethodCalls) == 0 {
return ReceiverServiceMethodCall{}
}
call := f.MethodCalls[len(f.MethodCalls)-1]
f.MethodCalls = f.MethodCalls[:len(f.MethodCalls)-1]
return call
}
func (f *FakeReceiverService) Reset() {
f.MethodCalls = nil
f.GetReceiverFn = defaultReceiverFn
f.ListReceiversFn = defaultReceiversFn
}
func defaultReceiverFn(ctx context.Context, q models.GetReceiverQuery, u identity.Requester) (*models.Receiver, error) {
return nil, nil
}
func defaultReceiversFn(ctx context.Context, q models.ListReceiversQuery, u identity.Requester) ([]*models.Receiver, error) {
return nil, nil
}