forked from quic-go/quic-go
implement a caching reader needed for crypto streams
This commit is contained in:
36
utils/caching_reader_test.go
Normal file
36
utils/caching_reader_test.go
Normal file
@@ -0,0 +1,36 @@
|
||||
package utils
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
|
||||
. "github.com/onsi/ginkgo"
|
||||
. "github.com/onsi/gomega"
|
||||
)
|
||||
|
||||
var _ = Describe("Caching reader", func() {
|
||||
It("caches Read()", func() {
|
||||
r := bytes.NewReader([]byte("foobar"))
|
||||
cr := NewCachingReader(r)
|
||||
p := make([]byte, 3)
|
||||
n, err := cr.Read(p)
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
Expect(n).To(Equal(3))
|
||||
Expect(p).To(Equal([]byte("foo")))
|
||||
Expect(cr.Get()).To(Equal([]byte("foo")))
|
||||
})
|
||||
|
||||
It("caches ReadByte()", func() {
|
||||
r := bytes.NewReader([]byte("foobar"))
|
||||
cr := NewCachingReader(r)
|
||||
b, err := cr.ReadByte()
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
Expect(b).To(Equal(byte('f')))
|
||||
b, err = cr.ReadByte()
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
Expect(b).To(Equal(byte('o')))
|
||||
b, err = cr.ReadByte()
|
||||
Expect(err).ToNot(HaveOccurred())
|
||||
Expect(b).To(Equal(byte('o')))
|
||||
Expect(cr.Get()).To(Equal([]byte("foo")))
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user