github.com/juju/juju@v0.0.0-20240430160146-1752b71fcf00/caas/kubernetes/provider/watcher/test/helpers.go (about) 1 // Copyright 2020 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package k8swatchertest 5 6 import ( 7 jujuclock "github.com/juju/clock" 8 "k8s.io/client-go/tools/cache" 9 10 k8swatcher "github.com/juju/juju/caas/kubernetes/provider/watcher" 11 "github.com/juju/juju/core/watcher/watchertest" 12 ) 13 14 func NewKubernetesTestWatcher() (k8swatcher.KubernetesNotifyWatcher, func()) { 15 ch := make(chan struct{}, 1) 16 ch <- struct{}{} 17 return watchertest.NewMockNotifyWatcher(ch), func() { 18 select { 19 case ch <- struct{}{}: 20 default: 21 } 22 } 23 } 24 25 func NewKubernetesTestStringsWatcher() (k8swatcher.KubernetesStringsWatcher, func([]string)) { 26 ch := make(chan []string, 1) 27 ch <- []string{} 28 return watchertest.NewMockStringsWatcher(ch), func(s []string) { 29 select { 30 case ch <- s: 31 default: 32 } 33 } 34 } 35 36 func NewKubernetesTestWatcherFunc(w k8swatcher.KubernetesNotifyWatcher) k8swatcher.NewK8sWatcherFunc { 37 return func(_ cache.SharedIndexInformer, _ string, _ jujuclock.Clock) (k8swatcher.KubernetesNotifyWatcher, error) { 38 return w, nil 39 } 40 }