func closeHub(logger lager.Logger, hub events.Hub) ifrit.Runner { return ifrit.RunFunc(func(signals <-chan os.Signal, ready chan<- struct{}) error { logger.Info("starting") defer logger.Info("finished") close(ready) logger.Info("started") <-signals logger.Info("shutting-down") hub.Close() return nil }) }
func hubMaintainer(logger lager.Logger, desiredHub, actualHub events.Hub) ifrit.RunFunc { return func(signals <-chan os.Signal, ready chan<- struct{}) error { logger := logger.Session("hub-maintainer") close(ready) logger.Info("started") defer logger.Info("finished") <-signals err := desiredHub.Close() if err != nil { logger.Error("error-closing-desired-hub", err) } err = actualHub.Close() if err != nil { logger.Error("error-closing-actual-hub", err) } return nil } }
"github.com/cloudfoundry-incubator/bbs/events" "github.com/cloudfoundry-incubator/bbs/events/eventfakes" "github.com/cloudfoundry-incubator/bbs/handlers" "github.com/pivotal-golang/lager" "github.com/vito/go-sse/sse" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" ) var _ = Describe("Event Handlers", func() { var ( logger lager.Logger hub events.Hub handler *handlers.EventHandler server *httptest.Server ) BeforeEach(func() { hub = events.NewHub() logger = lager.NewLogger("test") logger.RegisterSink(lager.NewWriterSink(GinkgoWriter, lager.DEBUG)) handler = handlers.NewEventHandler(logger, hub) }) AfterEach(func() { hub.Close()
package events_test import ( "strconv" "github.com/cloudfoundry-incubator/bbs/events" "github.com/cloudfoundry-incubator/bbs/events/eventfakes" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" ) var _ = Describe("Hub", func() { var ( hub events.Hub ) BeforeEach(func() { hub = events.NewHub() }) Describe("RegisterCallback", func() { Context("when registering the callback", func() { var eventSource events.EventSource var counts chan int BeforeEach(func() { var err error eventSource, err = hub.Subscribe() Expect(err).NotTo(HaveOccurred())
"github.com/cloudfoundry-incubator/bbs/models" "github.com/cloudfoundry-incubator/bbs/models/test/model_helpers" "github.com/pivotal-golang/lager" "github.com/pivotal-golang/lager/lagertest" "github.com/vito/go-sse/sse" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" ) var _ = Describe("Event Handlers", func() { var ( logger lager.Logger desiredHub events.Hub actualHub events.Hub handler *handlers.EventHandler eventStreamDone chan struct{} server *httptest.Server ) BeforeEach(func() { logger = lagertest.NewTestLogger("test") desiredHub = events.NewHub() actualHub = events.NewHub() handler = handlers.NewEventHandler(logger, desiredHub, actualHub) eventStreamDone = make(chan struct{}) }) AfterEach(func() {