func (messageRouter *messageRouter) unregisterSink(s sinks.Sink, activeSinks *groupedsinks.GroupedSinks) { messageRouter.Lock() defer messageRouter.Unlock() activeSinks.Delete(s) close(s.Channel()) switch s.(type) { case *sinks.DumpSink: messageRouter.activeDumpSinksCounter-- case *sinks.SyslogSink: messageRouter.activeSyslogSinksCounter-- case *sinks.WebsocketSink: messageRouter.activeWebsocketSinksCounter-- } messageRouter.logger.Infof("MessageRouter: Sink with channel %v requested closing. Closed it.", s.Channel()) }
result := groupedSinks.Register(inputChan, appSink) Expect(result).To(BeFalse()) }) }) Describe("Delete", func() { It("should only delete a specific sink", func() { target := "789" sink1 := syslog.NewSyslogSink(target, "url1", loggertesthelper.Logger(), DummySyslogWriter{}, errorChan) sink2 := syslog.NewSyslogSink(target, "url2", loggertesthelper.Logger(), DummySyslogWriter{}, errorChan) groupedSinks.Register(inputChan, sink1) groupedSinks.Register(inputChan, sink2) ok := groupedSinks.Delete(sink1) Expect(ok).To(BeTrue()) Expect(groupedSinks.CountFor(target)).To(Equal(1)) }) It("should handle delete for non-existing appIds", func() { target := "789" sink1 := syslog.NewSyslogSink(target, "url1", loggertesthelper.Logger(), DummySyslogWriter{}, errorChan) ok := groupedSinks.Delete(sink1) Expect(ok).To(BeFalse()) Expect(groupedSinks.CountFor(target)).To(BeZero()) })