mirror of
https://github.com/octoleo/syncthing.git
synced 2024-11-20 11:55:18 +00:00
76 lines
1.8 KiB
Go
76 lines
1.8 KiB
Go
|
package writer_test
|
||
|
|
||
|
import (
|
||
|
"github.com/onsi/gomega/gbytes"
|
||
|
|
||
|
. "github.com/onsi/ginkgo"
|
||
|
. "github.com/onsi/ginkgo/internal/writer"
|
||
|
. "github.com/onsi/gomega"
|
||
|
)
|
||
|
|
||
|
var _ = Describe("Writer", func() {
|
||
|
var writer *Writer
|
||
|
var out *gbytes.Buffer
|
||
|
|
||
|
BeforeEach(func() {
|
||
|
out = gbytes.NewBuffer()
|
||
|
writer = New(out)
|
||
|
})
|
||
|
|
||
|
It("should stream directly to the outbuffer by default", func() {
|
||
|
writer.Write([]byte("foo"))
|
||
|
Ω(out).Should(gbytes.Say("foo"))
|
||
|
})
|
||
|
|
||
|
It("should not emit the header when asked to DumpOutWitHeader", func() {
|
||
|
writer.Write([]byte("foo"))
|
||
|
writer.DumpOutWithHeader("my header")
|
||
|
Ω(out).ShouldNot(gbytes.Say("my header"))
|
||
|
Ω(out).Should(gbytes.Say("foo"))
|
||
|
})
|
||
|
|
||
|
Context("when told not to stream", func() {
|
||
|
BeforeEach(func() {
|
||
|
writer.SetStream(false)
|
||
|
})
|
||
|
|
||
|
It("should only write to the buffer when told to DumpOut", func() {
|
||
|
writer.Write([]byte("foo"))
|
||
|
Ω(out).ShouldNot(gbytes.Say("foo"))
|
||
|
writer.DumpOut()
|
||
|
Ω(out).Should(gbytes.Say("foo"))
|
||
|
})
|
||
|
|
||
|
It("should truncate the internal buffer when told to truncate", func() {
|
||
|
writer.Write([]byte("foo"))
|
||
|
writer.Truncate()
|
||
|
writer.DumpOut()
|
||
|
Ω(out).ShouldNot(gbytes.Say("foo"))
|
||
|
|
||
|
writer.Write([]byte("bar"))
|
||
|
writer.DumpOut()
|
||
|
Ω(out).Should(gbytes.Say("bar"))
|
||
|
})
|
||
|
|
||
|
Describe("emitting a header", func() {
|
||
|
Context("when the buffer has content", func() {
|
||
|
It("should emit the header followed by the content", func() {
|
||
|
writer.Write([]byte("foo"))
|
||
|
writer.DumpOutWithHeader("my header")
|
||
|
|
||
|
Ω(out).Should(gbytes.Say("my header"))
|
||
|
Ω(out).Should(gbytes.Say("foo"))
|
||
|
})
|
||
|
})
|
||
|
|
||
|
Context("when the buffer has no content", func() {
|
||
|
It("should not emit the header", func() {
|
||
|
writer.DumpOutWithHeader("my header")
|
||
|
|
||
|
Ω(out).ShouldNot(gbytes.Say("my header"))
|
||
|
})
|
||
|
})
|
||
|
})
|
||
|
})
|
||
|
})
|