| 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")) |
| }) |
| }) |
| }) |
| }) |
| }) |