...

Source file src/github.com/cybertec-postgresql/pgwatch/v5/internal/testutil/mocks.go

Documentation: github.com/cybertec-postgresql/pgwatch/v5/internal/testutil

     1  package testutil
     2  
     3  import (
     4  	"context"
     5  	"errors"
     6  
     7  	"github.com/cybertec-postgresql/pgwatch/v5/api/pb"
     8  	"github.com/cybertec-postgresql/pgwatch/v5/internal/metrics"
     9  	"github.com/cybertec-postgresql/pgwatch/v5/internal/sources"
    10  	"google.golang.org/protobuf/types/known/structpb"
    11  )
    12  
    13  // Receiver implements the ReceiverServer interface for testing purposes
    14  type Receiver struct {
    15  	pb.UnimplementedReceiverServer
    16  }
    17  
    18  func (receiver *Receiver) UpdateMeasurements(_ context.Context, msg *pb.MeasurementEnvelope) (*pb.Reply, error) {
    19  	if len(msg.GetData()) == 0 {
    20  		return nil, errors.New("empty message")
    21  	}
    22  	if msg.GetDBName() != "Db" {
    23  		return nil, errors.New("invalid message")
    24  	}
    25  	return &pb.Reply{}, nil
    26  }
    27  
    28  func (receiver *Receiver) SyncMetric(_ context.Context, syncReq *pb.SyncReq) (*pb.Reply, error) {
    29  	if syncReq == nil {
    30  		return nil, errors.New("nil sync request")
    31  	}
    32  	if syncReq.GetOperation() == pb.SyncOp_InvalidOp {
    33  		return nil, errors.New("invalid sync request")
    34  	}
    35  	return &pb.Reply{}, nil
    36  }
    37  
    38  func (receiver *Receiver) DefineMetrics(_ context.Context, metricsStruct *structpb.Struct) (*pb.Reply, error) {
    39  	if metricsStruct == nil {
    40  		return nil, errors.New("nil metrics struct")
    41  	}
    42  	if metricsStruct.GetFields() == nil {
    43  		return nil, errors.New("empty metrics struct")
    44  	}
    45  	return &pb.Reply{Logmsg: "metrics defined successfully"}, nil
    46  }
    47  
    48  // MockMetricsReaderWriter implements MetricsReaderWriter interface
    49  type MockMetricsReaderWriter struct {
    50  	GetMetricsFunc   func() (*metrics.Metrics, error)
    51  	UpdateMetricFunc func(name string, m metrics.Metric) error
    52  	CreateMetricFunc func(name string, m metrics.Metric) error
    53  	DeleteMetricFunc func(name string) error
    54  	DeletePresetFunc func(name string) error
    55  	UpdatePresetFunc func(name string, preset metrics.Preset) error
    56  	CreatePresetFunc func(name string, preset metrics.Preset) error
    57  	WriteMetricsFunc func(metricDefs *metrics.Metrics) error
    58  }
    59  
    60  func (m *MockMetricsReaderWriter) GetMetrics() (*metrics.Metrics, error) {
    61  	return m.GetMetricsFunc()
    62  }
    63  func (m *MockMetricsReaderWriter) UpdateMetric(name string, metric metrics.Metric) error {
    64  	return m.UpdateMetricFunc(name, metric)
    65  }
    66  func (m *MockMetricsReaderWriter) CreateMetric(name string, metric metrics.Metric) error {
    67  	return m.CreateMetricFunc(name, metric)
    68  }
    69  func (m *MockMetricsReaderWriter) DeleteMetric(name string) error {
    70  	return m.DeleteMetricFunc(name)
    71  }
    72  func (m *MockMetricsReaderWriter) DeletePreset(name string) error {
    73  	return m.DeletePresetFunc(name)
    74  }
    75  func (m *MockMetricsReaderWriter) UpdatePreset(name string, preset metrics.Preset) error {
    76  	return m.UpdatePresetFunc(name, preset)
    77  }
    78  func (m *MockMetricsReaderWriter) CreatePreset(name string, preset metrics.Preset) error {
    79  	return m.CreatePresetFunc(name, preset)
    80  }
    81  func (m *MockMetricsReaderWriter) WriteMetrics(metricDefs *metrics.Metrics) error {
    82  	return m.WriteMetricsFunc(metricDefs)
    83  }
    84  
    85  // MockSourcesReaderWriter implements SourcesReaderWriter interface
    86  type MockSourcesReaderWriter struct {
    87  	GetSourcesFunc   func() (sources.Sources, error)
    88  	UpdateSourceFunc func(md sources.Source) error
    89  	CreateSourceFunc func(md sources.Source) error
    90  	DeleteSourceFunc func(name string) error
    91  	WriteSourcesFunc func(sources.Sources) error
    92  }
    93  
    94  func (m *MockSourcesReaderWriter) GetSources() (sources.Sources, error) {
    95  	return m.GetSourcesFunc()
    96  }
    97  func (m *MockSourcesReaderWriter) UpdateSource(md sources.Source) error {
    98  	return m.UpdateSourceFunc(md)
    99  }
   100  func (m *MockSourcesReaderWriter) CreateSource(md sources.Source) error {
   101  	return m.CreateSourceFunc(md)
   102  }
   103  func (m *MockSourcesReaderWriter) DeleteSource(name string) error {
   104  	return m.DeleteSourceFunc(name)
   105  }
   106  func (m *MockSourcesReaderWriter) WriteSources(srcs sources.Sources) error {
   107  	return m.WriteSourcesFunc(srcs)
   108  }
   109