1package store 2 3import ( 4 "context" 5 "errors" 6 "testing" 7 8 corev2 "github.com/sensu/sensu-go/api/core/v2" 9 "github.com/sensu/sensu-go/types" 10) 11 12type mockEventStore struct { 13 id string 14} 15 16func (m mockEventStore) DeleteEventByEntityCheck(ctx context.Context, entity, check string) error { 17 return errors.New(m.id) 18} 19 20func (mockEventStore) GetEvents(ctx context.Context, pred *SelectionPredicate) ([]*corev2.Event, error) { 21 return nil, nil 22} 23 24func (mockEventStore) GetEventsByEntity(ctx context.Context, entity string, pred *SelectionPredicate) ([]*corev2.Event, error) { 25 return nil, nil 26} 27 28func (mockEventStore) GetEventByEntityCheck(ctx context.Context, entity, check string) (*types.Event, error) { 29 return nil, nil 30} 31 32func (mockEventStore) UpdateEvent(ctx context.Context, event *types.Event) (old, new *types.Event, err error) { 33 return nil, nil, nil 34} 35 36func TestEventStoreProxy(t *testing.T) { 37 storeA := mockEventStore{"a"} 38 storeB := mockEventStore{"b"} 39 40 proxy := NewEventStoreProxy(storeA) 41 ctx := context.Background() 42 43 err := proxy.DeleteEventByEntityCheck(ctx, "", "") 44 if got, want := err.Error(), "a"; got != want { 45 t.Fatalf("bad response from event store: got %s, want %s", got, want) 46 } 47 48 proxy.UpdateEventStore(storeB) 49 50 err = proxy.DeleteEventByEntityCheck(ctx, "", "") 51 if got, want := err.Error(), "b"; got != want { 52 t.Fatalf("bad response from event store: got %s, want %s", got, want) 53 } 54} 55