func streamEvents(eventSource events.EventSource) chan models.Event { eventChannel := make(chan models.Event) go func() { for { event, err := eventSource.Next() if err != nil { close(eventChannel) return } eventChannel <- event } }() return eventChannel }
import ( "encoding/base64" "errors" "io" "code.cloudfoundry.org/bbs/events" "code.cloudfoundry.org/bbs/events/eventfakes" "code.cloudfoundry.org/bbs/models" "github.com/gogo/protobuf/proto" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" "github.com/vito/go-sse/sse" ) var _ = Describe("EventSource", func() { var eventSource events.EventSource var fakeRawEventSource *eventfakes.FakeRawEventSource BeforeEach(func() { fakeRawEventSource = new(eventfakes.FakeRawEventSource) eventSource = events.NewEventSource(fakeRawEventSource) }) Describe("Next", func() { Describe("Desired LRP events", func() { var desiredLRP *models.DesiredLRP BeforeEach(func() { desiredLRP = &models.DesiredLRP{ ProcessGuid: "some-guid", Domain: "some-domain",
. "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()) counts = make(chan int, 1) cbCounts := counts hub.RegisterCallback(func(count int) { cbCounts <- count }) }) It("calls the callback immediately with the current subscriber count", func() {