dsfx/pkg/frame/frame_test.go

72 lines
1.4 KiB
Go
Raw Normal View History

2025-03-09 15:52:33 -04:00
package frame_test
2025-03-08 15:07:27 -05:00
import (
"bufio"
"bytes"
"testing"
2025-03-09 15:52:33 -04:00
"koti.casa/numenor-labs/dsfx/pkg/frame"
2025-03-08 15:07:27 -05:00
)
func TestLenPrefixedWriteTo(t *testing.T) {
// Given ...
buf := bytes.NewBuffer(nil)
msg := []byte("Hello, World!")
expectedBytesWritten := len(msg) + 2
// When ...
2025-03-09 15:52:33 -04:00
n, err := frame.NewFrame(msg).WriteTo(buf)
2025-03-08 15:07:27 -05:00
// Then ...
if err != nil {
t.Fatalf("failed to write frame: %v", err)
return
}
if n != int64(expectedBytesWritten) {
t.Fatalf("expected %d bytes written, got %d", expectedBytesWritten, n)
return
}
if buf.Len() != expectedBytesWritten {
t.Fatalf("expected %d bytes in buffer, got %d", expectedBytesWritten, buf.Len())
return
}
if !bytes.Equal(buf.Bytes()[2:], msg) {
t.Fatalf("expected %q in buffer, got %q", msg, buf.Bytes()[2:])
return
}
}
func TestLenPrefixedReadFrom(t *testing.T) {
// Given ...
msg := []byte{0x00, 0x0d}
msg = append(msg, []byte("Hello, World!")...)
buf := bufio.NewReader(bytes.NewBuffer(msg))
expectedBytesRead := len(msg)
// When ...
2025-03-09 15:52:33 -04:00
f := frame.NewFrame(nil)
2025-03-08 15:07:27 -05:00
n, err := f.ReadFrom(buf)
// Then ...
if err != nil {
t.Fatalf("failed to write frame: %v", err)
return
}
if n != int64(expectedBytesRead) {
t.Fatalf("expected %d bytes read, got %d", expectedBytesRead, n)
return
}
if !bytes.Equal(f.Contents(), []byte("Hello, World!")) {
t.Fatalf("expected %q, got %q", []byte("Hello, World!"), f.Contents())
return
}
}