49 lines
953 B
Go
49 lines
953 B
Go
package frame
|
|
|
|
import (
|
|
"bytes"
|
|
"strings"
|
|
|
|
. "gopkg.in/check.v1"
|
|
)
|
|
|
|
type WriterSuite struct{}
|
|
|
|
var _ = Suite(&WriterSuite{})
|
|
|
|
func (s *WriterSuite) TestWrites(c *C) {
|
|
var frameTexts = []string{
|
|
"CONNECT\nlogin:xxx\npasscode:yyy\n\n\x00",
|
|
|
|
"SEND\n" +
|
|
"destination:/queue/request\n" +
|
|
"tx:1\n" +
|
|
"content-length:5\n" +
|
|
"\n\x00\x01\x02\x03\x04\x00",
|
|
|
|
"SEND\ndestination:x\n\nABCD\x00",
|
|
|
|
"SEND\ndestination:x\ndodgy\\nheader\\c:abc\\n\\c\n\n123456\x00",
|
|
}
|
|
|
|
for _, frameText := range frameTexts {
|
|
writeToBufferAndCheck(c, frameText)
|
|
}
|
|
}
|
|
|
|
func writeToBufferAndCheck(c *C, frameText string) {
|
|
reader := NewReader(strings.NewReader(frameText))
|
|
|
|
frame, err := reader.Read()
|
|
c.Assert(err, IsNil)
|
|
c.Assert(frame, NotNil)
|
|
|
|
var b bytes.Buffer
|
|
var writer = NewWriter(&b)
|
|
err = writer.Write(frame)
|
|
c.Assert(err, IsNil)
|
|
newFrameText := b.String()
|
|
c.Check(newFrameText, Equals, frameText)
|
|
c.Check(b.String(), Equals, frameText)
|
|
}
|