diff --git a/streams_map.go b/streams_map.go index 262b0fdb..c1650f18 100644 --- a/streams_map.go +++ b/streams_map.go @@ -69,6 +69,7 @@ func (m *streamsMap) RemoveStream(id protocol.StreamID) error { return nil } +// NumberOfStreams gets the number of open streams func (m *streamsMap) NumberOfStreams() int { m.mutex.RLock() defer m.mutex.RUnlock() diff --git a/streams_map_test.go b/streams_map_test.go index f55816ab..c286a776 100644 --- a/streams_map_test.go +++ b/streams_map_test.go @@ -52,12 +52,24 @@ var _ = Describe("Streams Map", func() { Expect(err).To(MatchError("a stream with ID 5 already exists")) }) - It("gets the number of streams", func() { - Expect(m.NumberOfStreams()).To(Equal(0)) - m.PutStream(&stream{streamID: 5}) - Expect(m.NumberOfStreams()).To(Equal(1)) - m.RemoveStream(5) - Expect(m.NumberOfStreams()).To(Equal(0)) + Context("number of streams", func() { + It("returns 0 in the beginning", func() { + Expect(m.NumberOfStreams()).To(Equal(0)) + }) + + It("increases the counter when a new stream is added", func() { + err := m.PutStream(&stream{streamID: 5}) + Expect(err).ToNot(HaveOccurred()) + Expect(m.NumberOfStreams()).To(Equal(1)) + }) + + It("decreases the counter when removing a stream", func() { + err := m.PutStream(&stream{streamID: 5}) + Expect(err).ToNot(HaveOccurred()) + err = m.RemoveStream(5) + Expect(err).ToNot(HaveOccurred()) + Expect(m.NumberOfStreams()).To(Equal(0)) + }) }) Context("Lambda", func() {