alerter/engine/fake.go (37 lines of code) (raw):
package engine
import (
"context"
"fmt"
"github.com/Azure/adx-mon/alerter/alert"
"github.com/Azure/adx-mon/pkg/logger"
"github.com/Azure/azure-kusto-go/kusto/data/table"
)
func NewFakeKustoClient() Client {
return &fakeKustoClient{}
}
type fakeKustoClient struct {
queryErr error
queryFn func(ctx context.Context, qc *QueryContext, fn func(context.Context, string, *QueryContext, *table.Row) error) (error, int)
}
func (m *fakeKustoClient) Endpoint(db string) string {
return fmt.Sprintf("%s.mockcluster.kusto.windows.net", db)
}
func (m *fakeKustoClient) Query(ctx context.Context, qc *QueryContext, fn func(context.Context, string, *QueryContext, *table.Row) error) (error, int) {
if m.queryErr != nil {
return m.queryErr, 0
}
if m.queryFn != nil {
return m.queryFn(ctx, qc, fn)
}
logger.Infof("Executing rule %s", qc.Rule.Database)
return nil, 1
}
type fakeAlerter struct {
createFn func(ctx context.Context, endpoint string, alert alert.Alert) error
}
func (f *fakeAlerter) Create(ctx context.Context, endpoint string, alert alert.Alert) error {
if f.createFn != nil {
return f.createFn(ctx, endpoint, alert)
}
return nil
}