ContainerImage.Pinniped/internal/testutil/observable_with_informer_option.go
Andrew Keesler eab5c2b86b
Save 2 lines by using inline-style comments for Copyright
Signed-off-by: Andrew Keesler <akeesler@vmware.com>
2020-09-16 10:35:19 -04:00

30 lines
950 B
Go

// Copyright 2020 the Pinniped contributors. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0
package testutil
import "github.com/suzerain-io/pinniped/internal/controllerlib"
type ObservableWithInformerOption struct {
informerToFilterMap map[controllerlib.InformerGetter]controllerlib.Filter
}
func NewObservableWithInformerOption() *ObservableWithInformerOption {
return &ObservableWithInformerOption{
informerToFilterMap: make(map[controllerlib.InformerGetter]controllerlib.Filter),
}
}
func (i *ObservableWithInformerOption) WithInformer(
getter controllerlib.InformerGetter,
filter controllerlib.Filter,
opt controllerlib.InformerOption,
) controllerlib.Option {
i.informerToFilterMap[getter] = filter
return controllerlib.WithInformer(getter, filter, opt)
}
func (i *ObservableWithInformerOption) GetFilterForInformer(getter controllerlib.InformerGetter) controllerlib.Filter {
return i.informerToFilterMap[getter]
}